how to specify local modules as npm package dependencies
我有一个应用程序,它对依赖项下package.json文件中指定的第三方模块(例如"express")具有通常的依赖项集。例如。
1 | "express" :"3.1.1" |
我想构建自己的代码模块,并让package.json安装一组本地(在我当前所在的文件系统中是指)模块。我知道可以通过运行以下命令安装本地模块:
1 | npm install path/to/mymodule |
但是,我不知道如何通过package.json依赖结构实现这一点。在这个命令中使用
我相信这是告诉
其他人有这个问题吗?谢谢。
从NPM 2.0.0开始,本地支持导入本地依赖项。达尼洛波佩(Danilopeye)在回答一个类似问题时记录了这一点。我把他的回答复制到这里来帮助任何需要找到正确答案的人,因为这个问题在谷歌的搜索结果中排名很高。
This feature was implemented in the version 2.0.0 of npm. For example:
1
2
3
4
5
6 {
"name":"baz",
"dependencies": {
"bar":"file:../foo/bar"
}
}Any of the following paths are also valid:
1
2
3
4 ../foo/bar
~/foo/bar
./foo/bar
/foo/bar
请参见package.json中的本地依赖项
答案似乎是
最后我找不到一个好方法,于是我创建了一个名为
1 2 3 4 5 6 7 8 | #!/bin/sh for i in $(find ./local_modules -type d -maxdepth 1) ; do packageJson="${i}/package.json" if [ -f"${packageJson}" ]; then echo"installing ${i}..." npm install"${i}" fi done |
在与
修复需要两个简单的步骤。
第一:
1 | npm install lib-manager --save-dev |
第二,把这个加到你的
1 2 3 4 5 6 7 | { "name":"yourModuleName", // ... "scripts": { "postinstall":"./node_modules/.bin/local-link" } } |
更多详情请访问https://www.npmjs.com/package/lib-manager。希望它能帮助别人。
如果可以简单地将预装在节点模块中的模块与其他文件一起发布,则可以这样做:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | // ./node_modules/foo/package.json { "name":"foo", "version":"0.0.1", "main":"index.js" } // ./package.json ... "dependencies": { "foo":"0.0.1", "bar":"*" } // ./app.js var foo = require('foo'); |
您可能还希望将模块存储在git上,并告诉parent package.json从git安装依赖项:https://npmjs.org/doc/json.html_git urls作为依赖项