NPM不会创build.bin目录

我在Mac OS X 10.9.2上使用npm v1.4.4node v0.10.25

我最近升级了node和npm,现在npm install不再在node_modules中创build.bin目录。

我已经删除了node_modules,再次尝试npm install ,但是目录和二进制文件永远不会被创build。

有人有什么想法,为什么发生这种情况?

这是我的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" } } 

这似乎是一个错误,见#4851 。

./node_modules/.bin目录是npm创build链接到节点包的二进制文件的地方。 从https://www.npmjs.org/doc/files/npm-folders.html

可执行文件

处于全局模式时,可执行文件将链接到Unix上的{prefix} / bin中,或直接链接到Windows上的{prefix}中。

在本地模式下,可执行文件被链接到./node_modules/.bin中,以便可以通过npm运行脚本。 (例如,当您运行npmtesting时,testing运行者将会在path中。)


上面粘贴的package.json没有bin部分。 从npmpackage.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"这一行"bin": "./bin/npm-cli.js" node_modules/npm/npm-cli.js "bin": "./bin/npm-cli.js"将告诉npm./node_modules/.bin/npm创build一个链接到node_modules/npm/npm-cli.js

似乎你所有的依赖是dev的依赖。 你可以看看你的NODE_ENV环境variables现在是否设置为production ? 如果是的话,你需要把它改回来。

另外,安装过程中发生的任何错误?

这可能是因为坏npm。 尝试从npm故障排除以下命令,它应该工作正常。

 curl -L https://www.npmjs.org/install.sh | sh