我在 Mac OS X 10.9.2 上使用 npm v1.4.4 和节点v0.10.25 。
我最近升级了node和npm,现在npm install
不再在node_modules中创建.bin目录了。
我删除了node_modules,再次尝试了npm install
,但是从未创建过目录和二进制文件。
有没有人对于为什么会这样做有任何想法?
这是我的package.json
:
{
"name": "redacted",
"author": {},
"description": "redacted",
"dependencies": {
},
"devDependencies": {
"karma": "*",
"karma-coverage": "0.1.2",
"karma-junit-reporter": "*",
"karma-coffee-preprocessor": "~0.1",
"grunt": "^0.4.2",
"grunt-contrib-requirejs": "^0.4.3",
"grunt-contrib-concat": "^0.3.0",
"grunt-contrib-sass": "^0.7.2",
"grunt-contrib-htmlmin": "^0.2.0",
"grunt-contrib-cssmin": "^0.7.0",
"grunt-contrib-coffee": "^0.10.1",
"grunt-contrib-uglify": "^0.3.3",
"grunt-contrib-jst": "^0.5.1",
"grunt-contrib-qunit": "^0.4.0",
"grunt-contrib-jshint": "^0.8.0",
"grunt-contrib-watch": "^0.5.3",
"grunt-contrib-jasmine": "^0.6.1",
"grunt-contrib-compress": "^0.6.1",
"grunt-contrib-handlebars": "^0.6.1",
"grunt-contrib-less": "^0.9.0",
"grunt-contrib": "^0.9.0"
}
}
答案 0 :(得分:2)
这似乎是一个错误,请参阅#4851。
答案 1 :(得分:2)
./node_modules/.bin
目录是npm
创建节点包二进制文件链接的地方。来自https://www.npmjs.org/doc/files/npm-folders.html
可执行
在全局模式下,可执行文件被链接到 在Unix上使用{prefix} / bin,或直接在Windows上使用{prefix}。
在本地模式下,可执行文件链接到./node_modules/.bin中 他们可以通过npm运行脚本。 (对于 例如,运行npm时测试运行器将在路径中 测试。)
您上面粘贴的package.json
没有bin
部分。从npm
的{{1}}
package.json
具体而言,行{
"version": "1.4.9",
"name": "npm",
"publishConfig": {
"proprietary-attribs": false
},
"description": "A package manager for node",
...
...
"main": "./lib/npm.js",
"bin": "./bin/npm-cli.js",
"dependencies": {
"abbrev": "~1.0.4",
"ansi": "~0.2.1",
...
...
会告诉"bin": "./bin/npm-cli.js"
在npm
到./node_modules/.bin/npm
答案 2 :(得分:2)
我知道这是一篇旧文章,但是最近我遇到了同样的问题。我已经从包括package.json
和package-lock.json
的现有项目中复制了文件。 package-lock.json
阻止了node_module/.bin
目录的创建。
解决方案是删除node_modules
目录和package-lock.json
,然后再次运行npm install
答案 3 :(得分:0)
似乎所有依赖项都是 dev 依赖项。
你能看到你的NODE_ENV
环境变量现在是否设置为production
?如果是,您将需要将其更改回来。
此外,安装过程中发生了任何错误吗?
答案 4 :(得分:0)
由于npm损坏,可能会发生这种情况。尝试使用npm troubleshooting中的以下命令,它应该可以正常工作。
curl -L https://www.npmjs.org/install.sh | sh
答案 5 :(得分:0)
就我而言,我有webpack
在另一个控制台窗口中以监视模式运行。 npm install
期间我没有出现任何错误,因此花了一些时间才注意到。
karma
正在运行测试或webpack
以监视模式运行node_modules/karma
或整个node_modules
文件夹。如果依赖项文件夹已经存在,则NPM似乎不会在.bin文件夹中创建符号链接文件。npm install
使用NPM 6.7.0。
答案 6 :(得分:0)
这不是您问题的真正答案,但是因为我有类似的情况:我在VM上使用--no-bin-links
选项运行npm,因此Windows主机不会抱怨。然后以后我找不到bin链接文件夹......!