Node.js NPM未创建.bin目录
我正在Mac OS X 10.9.2上使用npm v1.4.4和节点v0.10.25 我最近升级了node和npm,现在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
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成功了!谢谢