NPM没有创建.bin目录

时间:2014-03-12 06:15:39

标签: node.js macos npm

我在 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"
  }
}

7 个答案:

答案 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.jsonpackage-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期间我没有出现任何错误,因此花了一些时间才注意到。

  1. 确保不使用依赖项,例如karma正在运行测试或webpack以监视模式运行
  2. 删除相关性文件夹,例如node_modules/karma或整个node_modules文件夹。如果依赖项文件夹已经存在,则NPM似乎不会在.bin文件夹中创建符号链接文件。
  3. 重试npm install

使用NPM 6.7.0。

答案 6 :(得分:0)

这不是您问题的真正答案,但是因为我有类似的情况:我在VM上使用--no-bin-links选项运行npm,因此Windows主机不会抱怨。然后以后我找不到bin链接文件夹......!