Node.js NPM未创建.bin目录

Node.js NPM未创建.bin目录,node.js,macos,npm,Node.js,Macos,Npm,我正在Mac OS X 10.9.2上使用npm v1.4.4和节点v0.10.25 我最近升级了node和npm,现在npm安装不再在node\u模块中创建.bin目录 我删除了node_模块,再次尝试npm安装,但从未创建目录和二进制文件 有人知道为什么会这样吗 这是我的包.json: { "name": "redacted", "author": {}, "description": "redacted", "dependencies": { }, "devDepe

我正在Mac OS X 10.9.2上使用npm v1.4.4和节点v0.10.25

我最近升级了node和npm,现在
npm安装
不再在node\u模块中创建.bin目录

我删除了node_模块,再次尝试
npm安装
,但从未创建目录和二进制文件

有人知道为什么会这样吗

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

似乎所有依赖项都是dev依赖项。 您是否可以查看您的
NODE\u ENV
环境变量现在是否设置为
production
?如果是,您需要将其更改回


另外,安装过程中是否发生错误?

/node\u modules/.bin
目录中,
npm
创建指向节点包二进制文件的链接。从

可执行程序 在全局模式下,可执行文件链接到 Unix上的{prefix}/bin,或在Windows上直接插入{prefix}

在本地模式下,可执行文件链接到./node\u modules/.bin so 它们可以用于通过npm运行的脚本。(用于 例如,以便在运行npm时,测试运行程序将位于路径中 测试。)


上面粘贴的
package.json
没有
bin
部分。从
npm
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\u modules/.bin/npm
创建一个链接,链接到
node\u modules/npm/npm cli.js
,这可能是因为npm损坏了。尝试从中执行以下命令,它应该可以正常工作

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

在我的例子中,
webpack
在另一个控制台窗口中以监视模式运行。我在
npm安装期间没有收到任何错误,所以我花了一点时间才注意到

  • 确保相关性未被使用,例如
    karma
    运行测试或
    webpack
    在监视模式下运行
  • 删除依赖项文件夹,例如
    节点模块/karma
    ,或整个
    节点模块
    文件夹。如果依赖项文件夹已经存在,NPM似乎不会在.bin文件夹中创建符号链接文件
  • 重试npm安装

  • 使用NPM 6.7.0。

    并不能真正回答您的问题,但因为我遇到了类似的情况:我在虚拟机上运行NPM时使用了
    --无bin链接
    选项,所以我的windows主机不会抱怨。后来我找不到bin links文件夹。。。哼

    我知道这是一篇老文章,但我最近也遇到了同样的问题。我复制了一个现有项目中的文件,包括
    package.json
    package lock.json
    package lock.json
    是阻止创建
    node\u module/.bin
    目录的原因。
    解决方案是删除
    node_modules
    目录和
    package lock.json
    并再次运行
    npm install
    你能分享你的
    package.json
    吗?我已经更新了问题以包含package.json内容。快速破解:
    ls node_modules | xargs-n1 npm install
    我遇到这个问题是因为我的磁盘内存已满。找到解决方法了吗?在Jenkins构建期间运行调用
    npm install
    时,我遇到了这个问题。构建代理是一个Docker容器,正在从主机装载的目录中调用
    npm install
    。这些因素中的任何一个是否会导致
    node\u modules/.bin
    creation的无声故障?node\u ENV为空。如果我将它们移动到dependencies,或者使用--dev,结果将显示相同的-no.bin目录。完全没有错误,一切看起来都很好。你试过从一个干净的项目开始吗?还要看看这是否有帮助:一个新的项目以同样的方式运行。这是我在诊断问题时发现的第一个链接。它没有帮助。可能其中一个依赖项确实创建了
    node\u module/.bin
    -grunt和karma不是都这样做吗?没有
    package.json
    需要
    bin
    部分。.bin目录仍应创建。此答案中引用的链接已断开,我似乎在实际文档中找不到解释npm如何处理二进制文件和
    .bin
    文件夹的任何条目。这是一个进入壁垒,任何人谁是新的这一点。关于在哪里可以找到关于这个的适当文档,有什么想法吗?哦,不用担心,我找到了:@Auspex no,
    package.json
    不需要
    bin
    部分。运行
    npm init
    并安装一些东西,您就会看到。有时候,您只需将整个
    node\u modules
    文件夹吹走,就可以让事情正常工作……这对我来说是成功的!感谢您知道
    包锁.json
    会干扰
    节点模块/bin/
    的正确生成?!做得好!我的
    npm安装
    在只构建了50%的
    .bin
    后将失败,因此当执行其他运行脚本时,二进制文件将丢失。真奇怪!删除了
    node\u模块
    &
    package lock.json
    ,BAM成功了!谢谢