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 包离线化的主要内容,如果未能解决你的问题,请参考以下文章

mapboxGL2中Terrain的离线化应用

mapboxGL2中Terrain的离线化应用

HDU-5441-离线化并查集

mapboxGL2离线化应用

mapboxGL2离线化应用

ES实战ES 插件包离线安装(本地文件)