我们还没有在应用程序中将node_modules文件夹提交到修订控制。我们的构建流程和开发者指令包括在初始检查时手动运行“npm install”以安装所需的节点模块。我们的package.json文件详细说明了特定的依赖版本。使用NPM/Node/package.json修订控制和依赖关系解析
最近,我们的自动构建破了,因为一个下游依赖打破了由于最近的第三方提交,我认为这是不可能的。我们的package.json文件如下:
{
"name": "test-package",
"description": "Test Package",
"version": "1.0.0",
"license": "UNLICENSED",
"private": true,
"repository": { "type": "svn", "url": "" },
"dependencies": {
"extend": "3.0.0",
"windows-registry": "0.1.3"
}
}
具体来说,我们对“Windows的注册表”版本依赖“0.1.3”,因为该模块(“参考”版本“1.2.0孩子依赖的爆发“)。从“Windows的注册表”的package.json文件的依赖关系如下:
"dependencies": {
"debug": "^2.2.0",
"ffi": "^2.0.0",
"ref": "^1.2.0",
"ref-struct": "^1.0.2",
"ref-union": "^1.0.0"
}
我会假设“Windows的注册表”总是引用“裁判”包版“1.2.0”,但它是实际上拉动了版本“1.3.4”,然后是最近的“1.3.5”,这打破了我们的构建。我在package.json文件中为“ref”验证它不是版本“1.2.0”。 “ref”的package.json文件非常庞大,文件中的各个键下面有很多值,比如“[email protected]^1.2.0”。是的package.json文件中有趣的部分如下:
{
/* Lots of other stuff */
"_spec": "[email protected]^1.2.0",
"version": "1.3.4"
}
为什么NPM不加载相同一致的可重复的依赖关系图?我们应该将node_modules提交给我们的修订控件吗?
在我的程序员想要读到这样一个正则表达式的CARRET而且感觉更具体的我 - 这就是我得到的不是阅读文档更好。我想用这种说法来确保您的依赖性是一致的唯一方法是提交您的节点模块?这真的很臭,因为它很大,并在bin文件夹中包含编译的二进制文件等。有没有其他办法呢? – jriffel73