我试图保持的package.json与节点模块的依赖关系的列表。 当我打电话NPM安装安装节点modules.and在我的应用程序生成的文件夹吧。 我把故宫拆封。 但是,这产生本地节点模块的依赖
"dependencies": {
"async": {
"version": "0.2.5",
"from": "async@0.2.5",
"resolved": "https://registry.npmjs.org/async/-/async-0.2.5.tgz"
},
当我上传应用程序到服务器appfog它可以从NPM-shrinkwrap.json安装。 因此,理想的情况是我想删除节点模块文件夹,只要传递shrinkwrap.json文件。 但是它有这个“从”。 我在过去产生的拆封和它没有“从”字段在那里。 如何生成不“从” /我就可以得到一个的package.json文件拆封。 所以我的应用程序将更为精简。 我可以在全球范围保持所有的节点模块。
谢谢
我有点被你的问题混淆。
拆封不安装,包,上传或做任何你的依赖。
它所做的就是扫描你的安装 node_modules并记录版本(递归)到文件中。 调用npm install
后定义文件将成为可重复的,这是一个软件工程的原则 。
“从”被引入了几个月回来。 在npm shrinkwrap
命令似乎将其设置为从安装模块的URL。 这可能是便携性。 npm install
的是模块名,咨询注册表(其网址是配置为npm config
设置),并安装它。 我可以采取同样package.json
和npm-shrinkwrap.json
,放在另外的机器上,并且从理论上得到了不同的结果,如果这台机器的npm config
设置,它指向一个不同的注册表。 因此,在拆封文件中嵌入解决URL增加了重复性的额外水平npm install
看到故宫配置手册页设置注册表参数的详细信息。
据GitHub上NPM问题3145,“从”设置已知会导致1.2.x的预NPM系统的向后兼容性问题。 升级是唯一的解决方法。
https://github.com/isaacs/npm/issues/3145
我认为你正在寻找shrinkpack: https://www.npmjs.com/package/shrinkpack
从文档:
Shrinkpack通过维护项目中的node_shrinkwrap目录,包含NPM从下载安装完全相同的压缩包补充了故宫拆封命令https://registry.npmjs.org 。
故宫的其余部分的安装过程是完全一样的。 唯一的区别是,安装和建设项目时没有任何网络活动是必要的。 该node_shrinkwrap目录可以在编辑器中被忽略(就像与node_modules目录执行)而是签入源代码控制。