我是否需要在lib或vendor文件夹中保留一份js库的副本,尽管已经使用npm安装了

Do I need to keep a copy of js library in lib or vendor folder though already installed using npm?

本文关键字:副本 js 安装 npm 一份 lib 是否 vendor 文件夹 保留      更新时间:2023-09-26

问题1:我正在使用npm安装我的项目依赖关系库,它存储在npm_modules文件夹中。是否有必要将库(如angular.jsangular-route.js)的副本保存在lib文件夹或vendor文件夹中?我可以看到很少有人使用lib文件夹或vendor文件夹来永久存储库。看到这个我很困惑。

问题2:我需要将node_modules文件夹复制/粘贴到生产环境中,还是只需在项目文件夹的命令提示符下运行npm install命令即可在生产环境中安装所有依赖项。依赖关系库是如何升级到生产的?

非常感谢你的建议。

实际上,这完全取决于您需要如何将站点部署到生产环境中。最终,您可能希望所有JS文件捆绑到一个或几个文件中,这些文件被缩小并使用gzip压缩发送。

你如何把它们捆起来取决于你。有相当多的选择:

  • Browseserify
  • Webpack
  • Grunt/gullow构建过程
  • 除此之外还有更多

至于你是否需要将这些捆绑的javascript文件的副本置于版本控制之下,我认为这可以归结为一个关键问题:你能在生产服务器上运行构建过程(比如使用NodeJS的工具之一),还是在创建zip文件或安装程序的构建服务器上运行?如果是这样,那么您就不需要包含它们,只需让构建服务器或生产服务器从版本控制npm install中检查出最新的副本,然后运行构建过程。

但是,如果您能做的最好的事情是让生产服务器从源代码管理中签出文件,那么您会希望在存储库中包括要使用的文件的最终版本。

应尽可能避免在源代码管理回购中保留生成的文件,例如捆绑的javascript文件。因为否则,每次提交都必须包含对源文件的更改,以及对生成的文件的相应更改。后者只是噪音,每一个在提交时查看diff/patch的开发人员都必须忽略它。