package.json中的本地依赖
我想做这样的事情,所以npm install
也安装../somelocallib
的package.json
或更重要的是它的依赖。
"dependencies": { "express": "*", "../somelocallib": "*" }
2014年9月更新
这个function是在npm的2.0.0版本中实现的。 例:
{ "name": "baz", "dependencies": { "bar": "file:../foo/bar" } }
以下任何path也是有效的:
../foo/bar ~/foo/bar ./foo/bar /foo/bar
本地软件包将被复制到前缀 ( ./node-modules
)。
老答案
把somelocallib
作为依赖项放在你的package.json
中
"dependencies": { "somelocallib": "0.0.x" }
然后运行npm link ../somelocallib
将安装你正在使用的版本作为符号链接 。
app@0.0.1 /private/tmp/app └── somelocallib@0.0.1 -> /private/tmp/somelocallib
参考: link(1)
现在可以直接在package.json
指定本地节点模块安装path。 从文档:
本地path
从版本2.0.0开始,可以提供包含包的本地目录的path。 本地path可以使用
npm install -S
或npm install --save
,使用以下任何一种forms:../foo/bar ~/foo/bar ./foo/bar /foo/bar
在这种情况下,它们将被规范化为相对path并添加到您的
package.json
。 例如:{ "name": "baz", "dependencies": { "bar": "file:../foo/bar" } }
此function对本地离线开发和创build需要npm安装的testing非常有用,您不希望在外部服务器上安装该软件,但在将软件包发布到公共registry时不应使用该function。
这对我有用。
将以下内容放在package.json文件中
"scripts": { "preinstall": "npm install ../my-own-module/" }
如果你想进一步自动化,因为你正在检查你的模块到版本控制,并不想依靠开发人员记住npm链接,你可以添加到你的package.json“脚本”部分:
"scripts": { "postinstall": "npm link ../somelocallib", "postupdate": "npm link ../somelocallib" }
这感觉超越哈克,但似乎“工作”。 从这个NPM问题得到的提示: https : //github.com/isaacs/npm/issues/1558#issuecomment-12444454
实际上,从npm 2.0开始,现在有支持本地path(见这里 )。
我知道npm install ../somelocallib
工程。
但是,我不知道你在问题中显示的语法是否会从package.json
工作…
不幸的是, doc似乎只提到URL作为依赖。
尝试file:///.../...tar.gz
,指向一个压缩的本地lib …并告诉我们它是否工作。
这对我有效:首先,确保npm目录有合适的用户
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" : "*" }
好奇…..至less在Windows(我的npm是3.something)我需要做的:
"dependencies": { "body-parser": "^1.17.1", "module1": "../module1", "module2": "../module2",
当我做了一个npm install ../module1 --save
它导致绝对path,而不是相对每个文档。
我搞砸了一下,确定../xxx
就足够了。
具体来说,我有本地节点模块检出d:\ build \ module1,d:\ build \ module2和我的节点项目(应用程序)在d:\ build \ 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
module1的package.json依赖于“module2”:“../module2”; module2没有本地依赖; nodeApp具有依赖关系“module1”:“../module1”和“module2”:“../module2”。
不知道这是否只适用于我,因为所有3个文件夹(module1,module2和nodeApp)坐在同一水平…….
这是你将如何添加本地依赖项:
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" ....