我是否需要在lib或vendor文件夹中保留一份js库的副本,尽管已经使用npm安装了
Do I need to keep a copy of js library in lib or vendor folder though already installed using npm?
问题1:我正在使用npm安装我的项目依赖关系库,它存储在npm_modules
文件夹中。是否有必要将库(如angular.js
、angular-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的开发人员都必须忽略它。
- 如何在JS中创建对象的可变和不可变副本
- 强制node.js使用OpenSSL的非发行版副本
- lodash/underscore.js函数来创建由x的n个副本组成的数组
- 从redis到elasticsearch的Node.js脚本副本内存不足
- 如何使用原生JS创建脚本的完整副本
- Backbone.js集合在实例化时将自身的副本添加到集合中
- 三.js r74 JSONLoader 将所有几何图形的副本绑定到第一个骨骼
- 创建 D3.js 元素 OnClick 事件的放大副本
- 如何确认img文件的副本,转换完成,使用node.js
- 我是否需要在lib或vendor文件夹中保留一份js库的副本,尽管已经使用npm安装了
- Sails js-创建资产的副本
- CSS和JS在用gulp和angular.JS构建的网站中作为HTML的副本加载
- 如何在angular js中保留$scope变量的副本
- HTML中包含JS文件的Ruby on Rails副本
- 使用node.js编写MongoDB副本
- 我应该有我的网页引用的jquery.js在我自己的服务器或从code.jquery.com的副本
- 如何指示浏览器,js文件已更改,而不刷新它将反映在客户端.所以它下载了新的副本
- 如何在Vue.js中解绑定数组副本
- Vue.js是否有一种内置的方式来将持久对象的副本添加到重复数组中?
- 一个JS函数如果是一个正在工作的JS函数的近似副本,那么它将无法工作