You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

npm v6安装自定义包失败但v8正常的问题求助

npm v6安装自定义包abc时出现ENOENT错误(chmod找不到bin.js)

我尝试全局安装自己创建的npm包abc时遇到如下错误,该问题仅出现在npm v6版本(使用v6.14.17),npm v8(最新版)中可正常安装。

错误堆栈跟踪

$ npm i -g abc                                                        
/<home>/.nvm/versions/node/v12.22.10/bin/abc -> /<home>/.nvm/versions/node/v12.22.10/lib/node_modules/abc/src/bin/runner.js
npm ERR! code ENOENT
npm ERR! syscall chmod
npm ERR! path /<home>/.nvm/versions/node/v12.22.10/lib/node_modules/abc/bin.js
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, chmod '/<home>/.nvm/versions/node/v12.22.10/lib/node_modules/abc/bin.js'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

npm ERR! A complete log of this run can be found in:
npm ERR!     /<home>/.npm/_logs/2022-08-05T07_58_00_703Z-debug.log

版本变更说明

新版本仅对package.json的bin字段做了一处修改:新增了一个脚本配置。

新版本package.json片段

// package.json snippet
{
  "license": "xyz",
  "bin": {
    "my-package": "./src/bin/runner.js",
    "setup": "./bin.js"
  },
  "dependencies": {}
}

旧版本package.json片段(可在npm v6正常安装)

// package.json snippet (older version which is getting installed correctly with v6 as well
{
  "license": "xyz",
  "bin": {
    "my-package": "./src/bin/runner.js"
  },
  "dependencies": {}
}

项目文件夹结构

-- root-folder
   -- src
     -- bin
       -- runner.js
   -- bin.js
   -- package.json

已尝试的解决方法

  • 更换不同Node版本,搭配npm v6均失败
  • 相同Node版本(v12及以上)搭配npm v8可正常安装
  • 发布前使用npm link在npm v6上可正常工作
  • 安装旧版本包可正常完成,确认是新版本的问题
  • 执行npm cache clean --force
  • 使用--force参数执行npm install
  • 尝试带/不带-g参数的npm install

内容的提问来源于stack exchange,提问作者Karan Nagpal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 09:57:29