npm pack - npm install .tgz 离线安装 前端开发环境

为什么有这个需求

曾经出差,到一个机构里面,里面是局域网,没有外网。后台都是java,刻录个光盘,然后就把开发环境装好了,就直接开发了。

我进去后,由于不能离线安装开发环境,导致楼上楼下跑,效率极低,开发还特别慢。

延展

  1. 开发electronjs,那搞一个开发环境,能慢死。而且下次再开发,又装环境的时候,又得脑袋疼一波。用离线安装方式,就直接解决了痛点。
  2. 有些项目,copy回家,继续搞,家里网不好。用离线安装。
  3. 做一些教学,把开发代码发给学生们。这样好学好练习。

原理

npm pack 可以将一个库打包成 xxx.tgz

npm instal xxx-tag.tgz 可以将 压缩包离线安装

然后看到一个项目,批量打包,来的灵感。之前研究过离线安装,都失败了,这次测试是ok的。

https://gitee.com/git_zs/output_tgz_npm

上面这个项目 的打包过程不是很好。我改为针对手工操作了。

重点 备份package.json

备份package.json 备份package.json 备份package.json 重要的事情说三遍。

离线安装后会修改package.json

第一步 正常安装一遍

npm install

第二步 pack

将package.json 里面的 dependencies 和 devDependencies 都copy到一个文本中

然后只要名字 再拼个字符串 最后都弄成一行 用& 连接

pack.bat

npm pack debug & npm pack koa & npm pack koa-bodyparser & npm pack koa-convert & npm pack koa-json & npm pack koa-logger & npm pack koa-onerror & npm pack koa-router & npm pack koa-send & npm pack koa-static & npm pack koa2-cors & npm pack mime-types & npm pack mysql & npm pack open & npm pack sqlite & npm pack cross-env & npm pack nodemon & npm pack pkg & npm pack portfinder

第三步 move

把这些tgz的包 都放到n的目录,具体名字自己看都行

第四步 install (可以换个目录,copy代码,不要带上node_modules)

附送个获取文件名 dir > a.txt

install.bat

npm install n\cross-env-7.0.3.tgz & npm install n\debug-4.3.4.tgz & npm install n\koa-2.13.4.tgz & npm install n\koa-bodyparser-4.3.0.tgz & npm install n\koa-convert-2.0.0.tgz & npm install n\koa-json-2.0.2.tgz & npm install n\koa-logger-3.2.1.tgz & npm install n\koa-onerror-4.2.0.tgz & npm install n\koa-router-10.1.1.tgz & npm install n\koa-send-5.0.1.tgz & npm install n\koa-static-5.0.0.tgz & npm install n\koa2-cors-2.0.6.tgz & npm install n\mime-types-2.1.35.tgz & npm install n\mysql-2.18.1.tgz & npm install n\nodemon-2.0.18.tgz & npm install n\open-8.4.0.tgz & npm install n\pkg-5.7.0.tgz & npm install n\portfinder-1.0.28.tgz & npm install n\sqlite-4.1.1.tgz & npm install .\sqlite3-5.0.8.tgz

本项目特殊

由于有的文件不好下载,所以通过特殊手段,离线下载后,再copy到包里

copy.bat

copy .\node_sqlite3.node .\node_modules\sqlite3\lib\binding\napi-v6-win32-unknown-x64\node_sqlite3.node

最后就能运行 npm run dev

npm pack - npm install .tgz 离线安装 前端开发环境的更多相关文章

  1. 离线安装Android开发环境的方法

    对于大家从官网上下载下来的SDK其实是一个安装工具,里面啥都没有,如果在线安装的话会需要很长时间.我们同样可以从网络上用下载工具将所需要安装的东西下载下来,(同样有劳大家自己动手找找了)然后直接放入相 ...

  2. 基于gulp编写的一个简单实用的前端开发环境好了,安装完Gulp后,接下来是你大展身手的时候了,在你自己的电脑上面随便哪个地方建一个目录,打开命令行,然后进入创建好的目录里面,开始撸代码,关于生成的json文件请点击这里https://docs.npmjs.com/files/package.json,打开的速度看你的网速了注意:以下是为了演示 ,我建的一个目录结构,你自己可以根据项目需求自己建目

    自从Node.js出现以来,基于其的前端开发的工具框架也越来越多了,从Grunt到Gulp再到现在很火的WebPack,所有的这些新的东西的出现都极大的解放了我们在前端领域的开发,作为一个在前端领域里 ...

  3. 总结:Mac前端开发环境的搭建(配置)

    新年新气象,在2016年的第一天,我入手了人生中第一台自己的电脑(大一时好友赠送的电脑在一次无意中烧坏了主板,此后便不断借用别人的或者网站的).macbook air,身上已无分文...接下来半年的房 ...

  4. 用grunt搭建web前端开发环境

    1.前言 本文章旨在讲解grunt入门,以及讲解grunt最常用的几个插件的使用. 2.安装node.js Grunt和所有grunt插件都是基于nodejs来运行的,如果你的电脑上没有nodejs, ...

  5. 【Yeoman】热部署web前端开发环境

    本文来自 “简时空”:<[Yeoman]热部署web前端开发环境>(自动同步导入到博客园) 1.序言 记得去年的暑假看RequireJS的时候,曾少不更事般地惊为前端利器,写了<Sp ...

  6. 【前端福利】用grunt搭建自动化的web前端开发环境-完整教程

    jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学.不用! 1. 前言 各位web前端开发人员,如果你现在还不知道grunt或者听说过 ...

  7. 转:【前端福利】用grunt搭建自动化的web前端开发环境-完整教程

    原文地址:http://blog.csdn.net/wangfupeng1988/article/details/46418203 jQuery在使用grunt,bootstrap在使用grunt,百 ...

  8. 用 Docker 快速配置前端开发环境

    来源于:http://dockone.io/article/1714 今天是你入职第一天. 你起了个大早,洗漱干净带着材料去入职. 签了合同,领了机器,坐到工位,泡一杯袋装红茶,按下开机键,输入密码, ...

  9. 用grunt搭建自动化的web前端开发环境实战教程(详细步骤)

    用grunt搭建自动化的web前端开发环境实战教程(详细步骤) jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学.不用!前端自动化, ...

  10. 用grunt搭建自动化的web前端开发环境-完整教程

    原稿:http://www.cnblogs.com/wangfupeng1988/p/4561993.html#!comments jQuery在使用grunt,bootstrap在使用grunt,百 ...

随机推荐

  1. 20.5 OpenSSL 套接字RSA加密传输

    RSA算法同样可以用于加密传输,但此类加密算法虽然非常安全,但通常不会用于大量的数据传输,这是因为RSA算法加解密过程涉及大量的数学运算,尤其是模幂运算(即计算大数的幂模运算),这些运算对于计算机而言 ...

  2. C/C++ 反汇编:流程控制与循环结构

    反汇编即把目标二进制机器码转为汇编代码的过程,该技术常用于软件破解.外挂技术.病毒分析.逆向工程.软件汉化等领域,学习和理解反汇编对软件调试.系统漏洞挖掘.内核原理及理解高级语言代码都有相当大的帮助, ...

  3. C# 静态与动态数组

    在C#中,有许多内置的方法可以处理字符和字符串.这些方法是非常有用的,可以帮助开发人员更方便.更高效地处理文本数据.无论是静态数组还是动态数组,都可以使用System.Array类中的各种方法对数组进 ...

  4. Mac 下安装 mysqlclient

    brew install mysql export LDFLAGS="-L/usr/local/opt/openssl/lib" export CPPFLAGS="-I/ ...

  5. 28图图解Raft协议,so easy~~

    大家好,我是三友~~ 在之前写的<万字+20张图探秘Nacos注册中心核心实现原理> 这篇文章中我留了一个彩蛋 当文章点赞量突破28个,就单独写一篇关于Raft协议的文章 既然现在文章点赞 ...

  6. Spark相关面试题

    Spark Core面试篇01 一.简答题 1.Spark master使用zookeeper进行HA的,有哪些元数据保存在Zookeeper? 答:spark通过这个参数spark.deploy.z ...

  7. NC16576 [NOIP2012]摆花

    题目链接 题目 题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共m 盆.通过调查顾客的喜好,小明列出了顾客最喜欢的n 种花,从1 到n 标号.为了在门口展出更多种花,规定第i ...

  8. MyBatis Interceptor

    MyBatis的拦截器可以用于在以下对象及方法中拦截修改: Executor (update, query, flushStatements, commit, rollback, getTransac ...

  9. Java集合篇之深度解析Queue,单端队列、双端队列、优先级队列、阻塞队列

    写在开头 队列是Java中的一个集合接口,之前的文章已经讲解了List和Set,那么今天就来唠一唠它吧.队列的特点:存储的元素是有序的.可重复的. 队列的两大接口Queue vs Deque Queu ...

  10. valueOf与toString

    valueOf与toString valueOf和toString是Object.prototype上的方法,在Js几乎所有的对象都会继承自Object,同样由于包装对象的原因,几乎所有的数据类型都能 ...