根据这个答案,我安装了我的本地依赖:
{
"private": true,
"dependencies": {
"my_dependency": "../relative/path/to/my_dependency"
}
}
my_dependency
依赖于ESLint及其插件:
{
"name": "my_dependency",
"dependencies": {
"@typescript-eslint/eslint-plugin": "5.25.0",
"@typescript-eslint/parser": "5.25.0",
"eslint": "8.16.0",
"eslint-plugin-import": "2.26.0",
"eslint-plugin-node": "11.1.0"
},
如果我将my_dependency
安装为路径,eslint
及其插件未安装在./node_modules
中,因此eslint
CLI不可用。
但是,如果我在npm上发布my_dependency
并安装它作为包名和版本,
{
"private": true,
"dependencies": {
"my_dependency": "0.0.0"
}
}
eslint
和所有插件将在./node_modules
中添加。
如何为本地依赖项获得相同的效果?我不想在每次修改my_dependency
时都用版本来污染npm注册表。
问题
不幸的是,这些本地路径包没有安装它们的依赖项。
注意:当运行npm install时,通过本地路径链接的包将不会安装它们自己的依赖项。你必须在本地路径下运行npm install。
来源:docs.npmjs.com/..。
解决方案
有很多方法可以解决这个问题,但在我看来,最好的方法是使用GitHub repo和分支。
将代码推送到github的repo,比如my-npm-playground
,假设你使用的github用户名是ada_lovelace
,你可以像这样链接到repo,
{
"private": true,
"dependencies": {
"my_dependency": "ada_lovelace/my-npm-playground"
}
}