基本问题:我们应该如何在团队环境中使用npm链接?我正在碰概念墙。
想法似乎很简单:主项目使用子项目,我们使用npm链接使子项目对主项目可见,现在,无需任何新的npm安装即可立即看到子项目中的更改。
在npm docs中描述。这是一个两步过程,
在articles like this中进行了更多解释。
我的问题:当我将主项目检入git时,它具有对这些全局模块的引用,这些模块仅在我的机器上是全局的。我的同事同时检查了主项目和子项目,他们是否不需要执行步骤1为每个子项目创建全局链接?
澄清:我做出了一个可能不正确的假设,即将node_modules检查到git中。关于是否应该这样做,一直存在争议,但是我对这样的想法深信不疑,即如果要创建一种产品,那么可复制的构建就需要node_modules。
这似乎很混乱。显然,我们可以编写所有脚本,但这应该如何工作?
答案 0 :(得分:1)
您的同事如何获得全局链接?您要签入node_modules
吗?您永远不要提交任何使用npm link
的东西。它对本地开发很有用,但不适用于git。
如果您不想过于频繁地发布,则可以使主项目使用依赖项的特定git分支,而不要使用已发布的版本,例如"jscs": "jscs-dev/node-jscs#v1.12.0"
。
如果您知道依赖关系的相对路径,则还可以添加到test
脚本或package.json
中任何其他脚本的链接。那就是我们在CI上使用的,因为我们需要针对当前版本而不是已发布的模块来测试样本:
{
"scripts": {
"test": "cd ./some/my-dep; npm link; cd ../../; npm link my-dep; mocha test/*"
}
}
如果您不了解相关补丁,则可以使用环境变量,并且与您一起工作的每个人都必须设置该变量才能使npm test
正常工作。