npm 包离线化
Posted 在厕所喝茶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了npm 包离线化相关的知识,希望对你有一定的参考价值。
npm 包离线化
背景
私服上面的包只能在内网使用,如果是出差或者什么的,npm i
将无法安装依赖。node-sass
等依赖包可能需要梯子才能安装。所以部分依赖包我们可以进行离线化处理
实现过程
首先进行一次npm i
,把需要的依赖包下载下来,或者从代码仓库等其他地方把依赖包下载下来。然后把下载下来的依赖包存放到项目中,切记不可以存放到node_modules
中,因为node_modules
一般是要被忽略。然后修改package.json
的中对应的依赖包字段。
下面以lodash
为例
- 首先安装
lodash
npm i lodash
-
在项目根目录下新建一个
private
文件夹,专门用来存放离线包的 -
在
node_modules
中找到lodash
,拷贝一份到private
文件夹。然后拷贝过来的lodash
文件夹最好也重命名一下,加一个版本号进去,这样子一眼就能看出来版本是多少 -
修改
package.json
中的lodash
字段值
原本是:
"dependencies":
"lodash": "^4.17.21"
现在需要修改为:
"dependencies":
"lodash": "file:./private/lodash-4.17.21"
到此,lodash
依赖包已经完成了离线化,当其他小组的成员把代码拉下来,执行npm i
的命令时,lodash
会从我们指定的文件夹中获取安装,其他依赖包还是会从npm
源上获取安装。这样子就可以完美解决部分依赖包无法安装或者安装缓慢的问题。
总结
1、npm包
离线化不适合对太多的依赖包进行离线化,这样子导致项目的体积变大,太多依赖包离线化还不如直接把node_modules
文件夹提交到代码仓库呢。
2、手动实现npm包
离线化的操作过程比较繁琐,后续可以做一个工具出来,通过命令行的形式自动实现npm包
的离线化。
以上是关于npm 包离线化的主要内容,如果未能解决你的问题,请参考以下文章