我们是否需要在bitbucket上推送node_modules

在bitbucket上推送angular2应用程序时,是否还需要将node_modules和typings文件夹一起推送? 我不得不在azure色的应用程序。 据我从各种文章了解到,当我们部署在Azure上,然后运行npm install本身,因此node_modules和types文件夹被创build。 请分享一下。

根据Azure的文档 ,

Azure云服务期望将所有模块安装在开发环境中,并且将node_modules目录作为部署包的一部分包含在内。 可以在Cloud Services上启用对使用package.json或npm-shrinkwrap.json文件安装模块的支持,但这需要定制Cloud Service项目使用的默认脚本。 有关如何完成此操作的示例,请参阅Azure启动任务以运行npm install以避免部署节点模块

他们也在这个问题上扩展:

将node_modules目录作为应用程序的一部分进行部署时,与使用package.json或npm-shrinkwrap.json文件相比,它将增加部署的大小; 但是,它确实保证了生产中使用的模块版本与开发中使用的相同。

在代码pipe理方面, node_modules文件夹是否应该提交给版本控制, 存在 冲突的 位置 。 我可以说的是, 左撇子事件之后,越来越多的人走向“应该犯”的方向,包括我自己在内。

如果你想遵循这条路,我build议你看一下两个shrinkwrap ,它们locking你的依赖关系本身所依赖的软件包的版本,以及shrinkpack ,它将实际的软件包保存为.tar以避免嘈杂的提交更改。

不, node_modulesnode_modules文件夹不需要被推送。 npm install会将你的依赖关系安装到这些文件夹中。

您不必在项目中推送node_modules文件夹。 如果你在你的package.json的依赖项中声明了它,那么克隆你的项目并运行npm install将会下载正确的东西。 一个简单的方法来声明package.json是通过使用 – 保存安装。

防爆。 npm install bootstrap --save

最佳实践 – 不要将node_modules推送到git存储库。

为了避免依赖关系的问题 – 使用像shrinkwrap这样的模块(locking包的依赖关系的版本)