在当地的package.json依赖在当地的package.json依赖(Local depende

2019-05-03 23:34发布

我想要做这样的事情,所以npm install也将安装package.json../somelocallib或更重要的是它的依赖。

"dependencies": {
    "express": "*",
    "../somelocallib": "*"
}

Answer 1:

2014年九月更新

此功能实现在NPM的2.0.0版本。 例:

{
  "name": "baz",
  "dependencies": {
    "bar": "file:../foo/bar"
  }
}

任何以下路径也有效:

../foo/bar
~/foo/bar
./foo/bar
/foo/bar

本地包将被复制到前缀 ( ./node-modules )。


老答案

somelocallib在你的依赖package.json正常:

"dependencies": {
  "somelocallib": "0.0.x"
}

然后运行npm link ../somelocallib和NPM将安装你的工作作为一个符号链接的版本。

app@0.0.1 /private/tmp/app
└── somelocallib@0.0.1 -> /private/tmp/somelocallib

参考: 链接(1)



Answer 2:

现在可以在您指定本地节点模块安装路径package.json直接。 从文档:

本地路径

随着2.0.0版本,你可以提供一个包含包本地目录的路径。 本地路径可以使用保存npm install -Snpm install --save ,使用任何这些形式:

 ../foo/bar ~/foo/bar ./foo/bar /foo/bar 

在这种情况下,他们将归为相对路径,并添加到您package.json 。 例如:

 { "name": "baz", "dependencies": { "bar": "file:../foo/bar" } } 

此功能对于本地脱机开发和创建需要NPM安装,你不想打外部服务器的测试很有帮助,但包发布到公共注册时,不应使用。



Answer 3:

这对我的作品。

请将下列您的package.json文件

"scripts": {
    "preinstall": "npm install ../my-own-module/"
}


Answer 4:

如果您想进一步自动化这一点,因为你正在检查你的模块版本控制,又不想依靠开发者记得要NPM链接,你可以添加到您的package.json“脚本”部分:

"scripts": {
    "postinstall": "npm link ../somelocallib",
    "postupdate": "npm link ../somelocallib"
  }

这种感觉超出了哈克,但它似乎“工作”。 得到了这个NPM发出提示: https://github.com/isaacs/npm/issues/1558#issuecomment-12444454



Answer 5:

这是你如何将添加本地依赖性:

npm install file:src/assets/js/FILE_NAME

添加从NPM到的package.json:

npm install --save file:src/assets/js/FILE_NAME

直接添加到的package.json是这样的:

....
  "angular2-autosize": "1.0.1",
  "angular2-text-mask": "8.0.2", 
  "animate.css": "3.5.2",
  "LIBRARY_NAME": "file:src/assets/js/FILE_NAME"
....


Answer 6:

一个完整的本地开发两个步骤:

  1. 提供路径到包含包的本地目录。
  2. 符号链接的包文件夹


Answer 7:

我知道, npm install ../somelocallib作品。

但是,我不知道你在问题中显示的语法是否会从工作package.json ...

不幸的是, DOC似乎只提URL作为一个依赖。

尝试file:///.../...tar.gz ,指着一个压缩本地的lib ...并告诉我们,如果它的工作原理。



Answer 8:

这为我工作:第一,要确保故宫目录有正确的用户

sudo chown -R myuser ~/.npm
sudo chown -R myuser /usr/local/lib/node_modules

然后你在你的package.json链接目录

"scripts": {
 "preinstall": "npm ln mylib ../../path/to/mylib"
}, 
"dependencies": {
  "mylib" : "*"
}


Answer 9:

好奇.....至少在Windows(我的NPM是3.something)我需要做的:

"dependencies": {
 "body-parser": "^1.17.1",
 "module1": "../module1",
 "module2": "../module2",

当我做了一个npm install ../module1 --save它导致绝对路径和每个文件不相对的。

我搞砸周围多一点,并确定../xxx就足够了。

具体来说,我在本地节点模块检查出来说d:\建立\模块1,d:\建立\模块2和d我的节点工程(应用程序):\建立\ nodeApp。

要“安装”,我:

d:\build\module1> rmdir "./node_modules" /q /s && npm install
d:\build\module2> rmdir "./node_modules" /q /s && npm install
d:\build\nodeApp> rmdir "./node_modules" /q /s && npm install

模块1的的package.json有“模块2”的依赖:” ../module2" ; 模块2没有本地的依赖; nodeApp具有依赖性 “模块1”: “../module1" 和 ”模块2“:” ../module2" 。

不知道是否因为所有3个文件夹(模块1,模块2和nodeApp)对我来说这只能坐在同一水平.......



Answer 10:

其实,NPM 2.0的,有支持现在本地路径(见这里 )。



文章来源: Local dependency in package.json
标签: node.js npm