【发布时间】:2014-08-24 09:20:34
【问题描述】:
我正在为 NodeJS 开发两个模块,第一个模块名为 aligator,第二个模块名为 aligator-methods。第二个取决于第一个工作。我正在同时开发这两个模块,我想全局链接aligator,这样我就可以像在 npm 注册表上一样使用它,我只是在全局范围内安装它。要做到这一点,NPM 文档说我需要使用npm link,但它不起作用。
模块aligator的文件package.json:
{
"name": "aligator",
"version": "0.0.1",
"description": "",
"main": "index.js",
"private": true,
"directories": {
"doc": "docs",
"example": "examples",
"test": "spec"
},
"scripts": {
"test": "gulp jasmine"
},
"license": "MIT",
"devDependencies": {
"gulp": "^3.6.2",
"gulp-jasmine": "^0.2.0",
"gulp-jshint": "^1.6.1",
"gulp-rename": "^1.2.0",
"jasmine-node": "^1.14.3"
},
"dependencies": {
"bluebird": "^1.2.4",
"lodash": "^2.4.1",
"mathjs": "^0.22.0"
}
}
模块aligator-methods的文件package.json:
{
"name": "aligator-methods",
"version": "0.0.1",
"description": "",
"main": "index.js",
"private": true,
"directories": {
"doc": "docs",
"example": "examples",
"test": "jasmine"
},
"scripts": {
"test": "gulp jasmine"
},
"author": "",
"license": "MIT",
"devDependencies": {
"gulp": "^3.6.2",
"gulp-jasmine": "^0.2.0",
"gulp-jshint": "^1.6.1",
"gulp-rename": "^1.2.0",
"jasmine-node": "^1.14.3"
},
"dependencies": {
"lodash": "^2.4.1",
"mathjs": "^0.22.0",
"aligator": "^0.0.1"
}
}
首先我全局链接了模块:
$ cd ~/aligator
$ npm link
/usr/local/lib/node_modules/aligator -> /Users/roc/aligator
如果我没记错的话,这已经创建了我的模块 aligator 的全局引用,现在我可以在计算机上的任何地方使用这个模块。
然后我转到另一个模块并尝试安装依赖项,但它给了我这个输出:
$ cd ~/aligator-methods
$ npm install
npm ERR! 404 404 Not Found: aligator
npm ERR! 404
npm ERR! 404 'aligator' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it
npm ERR! 404 It was specified as a dependency of 'aligator-methods'
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, or http url, or git url.
npm ERR! System Darwin 13.2.0
npm ERR! command "node" "/usr/local/bin/npm" "install"
npm ERR! cwd /Users/roc/aligator-methods
npm ERR! node -v v0.10.28
npm ERR! npm -v 1.4.16
npm ERR! code E404
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /Users/roc/aligator-methods/npm-debug.log
npm ERR! not ok code 0
我什至尝试将其直接链接到:
$ cd ~/aligator-methods
$ npm link aligator
/Users/roc/aligator-methods/node_modules/aligator -> /usr/local/lib/node_modules/aligator -> /Users/roc/aligator
但它也不起作用。
对可能发生的事情有什么想法吗?我在某处读到可能与我安装 node 和 npm 因为它是由 Homebrew 制作的,所以有时我需要使用 sudo,这似乎不太可能,但我尝试了他们的建议,但也没有用。
【问题讨论】:
-
在发布的代码中,第一个模块的名称拼写为
aligtor,您尝试在第二个模块中将其称为aligator。这也可能使你的依赖崩溃。 -
@BrunoToffolo 是的,你是对的,但在这种情况下,这只是帖子中的拼写错误。我已经更正了,谢谢。
-
在欺骗 webpack 配置的悲惨生活中失去了 4 个小时:/ 你救了我的命! +1
-
哇,我的
package.json的main也遇到了同样的问题,感谢您通过修复更新答案! -
如果您找到了答案,最好将其发布为答案并将问题设置为已解决 :)