npm安装因多层本地依赖关系而失败
如果我依赖于一个本地包,而这个本地包本身又依赖于另一个本地包,那么npm安装似乎不起作用。我使用的是npm版本2.5.1 以下是我所拥有的: /src/modules/moduleA的package.json:npm安装因多层本地依赖关系而失败,npm,Npm,如果我依赖于一个本地包,而这个本地包本身又依赖于另一个本地包,那么npm安装似乎不起作用。我使用的是npm版本2.5.1 以下是我所拥有的: /src/modules/moduleA的package.json: { "name": "moduleA", "version": "0.0.1", ... "dependencies": { "bluebird": "^2.9.1", "nodemailer": "^1.3.0" } } /src/modules/
{
"name": "moduleA",
"version": "0.0.1",
...
"dependencies": {
"bluebird": "^2.9.1",
"nodemailer": "^1.3.0"
}
}
/src/modules/moduleB的package.json:
{
"name": "moduleB",
"version": "1.0.0",
...
"dependencies": {
"nconf": "~0.6.7",
"moduleA": "../moduleA"
}
}
/src/apps/coolApp的package.json:
{
"name": "coolApp",
"version": "1.0.0",
...
"dependencies": {
"mysql": "~2.4.2",
"request": "~2.40.0",
"cheerio": "~0.17.0",
"async": "~0.9.0",
"expand-url": "0.1.3",
"moduleB": "../../modules/moduleB"
}
}
现在,如果我尝试npm安装
:
cd /src/modules/moduleA
npm install
[success, yay!]
cd /src/modules/moduleB
npm install
[success, yay!]
cd /src/apps/coolApp
npm install
npm ERR! addLocal Could not install /src/node/apps/moduleA
npm ERR! enoent ENOENT, open '/src/node/apps/moduleA'
npm ERR! enoent This is most likely not a problem with npm itself
npm ERR! enoent and is related to npm not being able to find a file.
[oh no!]
出于某种原因,npm正在尝试为coolApp安装moduleA,尽管它不需要直接安装,而且它正在使用相对路径字符串,因为它是在moduleB的package.json文件中指定的,尽管这对coolApp无效,因为它位于一个相对不同的位置。我发现,如果在路径之前用“file:”指定本地模块,则一切正常。耶 像这样:
"moduleB": "file:../../modules/moduleB"
鲍尔也是如此,但这不起作用。你知道解决这个问题的方法吗?对不起,我不知道(假设“file:”不适用于Bower的模式)。