【问题标题】:Cannot make npm install -g work for my package无法使 npm install -g 为我的包工作
【发布时间】:2012-10-09 04:20:04
【问题描述】:

我正在尝试将 CLI 功能添加到我的 npm 包拦截代理中。我找不到任何好的文档,所以我基本上从 express.js 中复制和修改了一些东西。

我补充说:

"bin": {
    "intercept-proxy": "./bin/intercept-proxy"
}

...到我的 package.json 文件并创建了一个包含 CLI 内容的 /bin/intercept-proxy.js。

当我跑步时:

npm install -g intercept-proxy

... 在链接部分之前一切正常。然后它失败了,说:

npm ERR! Error: ENOENT, chmod 'C:\Users\johan.obrink.24HRCOM\AppData\Roaming\npm\node_modules\intercept-proxy\bin\intercept-proxy

...日志说:

381 info linkStuff intercept-proxy@0.2.4
382 verbose linkBins intercept-proxy@0.2.4
383 verbose link bins [ { 'intercept-proxy': './bin/intercept-proxy' },
383 verbose link bins   'C:\\Users\\johan.obrink.24HRCOM\\AppData\\Roaming\\npm',
383 verbose link bins   true ]
384 verbose linkMans intercept-proxy@0.2.4
385 verbose rebuildBundles intercept-proxy@0.2.4
386 verbose rebuildBundles [ 'commander', 'mkdirp', 'underscore' ]
387 info C:\Users\johan.obrink.24HRCOM\AppData\Roaming\npm\node_modules\intercept-proxy unbuild
388 verbose from cache C:\Users\johan.obrink.24HRCOM\AppData\Roaming\npm\node_modules\intercept-proxy\package.json
389 info preuninstall intercept-proxy@0.2.4
390 info uninstall intercept-proxy@0.2.4
391 verbose true,C:\Users\johan.obrink.24HRCOM\AppData\Roaming\npm\node_modules,C:\Users\johan.obrink.24HRCOM\AppData\Roaming\npm\node_modules unbuild intercept-proxy@0.2.4
392 verbose C:\Users\johan.obrink.24HRCOM\AppData\Roaming\npm,[object Object] binRoot
393 info postuninstall intercept-proxy@0.2.4
394 error Error: ENOENT, chmod 'C:\Users\johan.obrink.24HRCOM\AppData\Roaming\npm\node_modules\intercept-proxy\bin\intercept-proxy'
395 error If you need help, you may report this log at:
395 error     <http://github.com/isaacs/npm/issues>
395 error or email it to:
395 error     <npm-@googlegroups.com>
396 error System Windows_NT 6.1.7601
397 error command "c:\\Program Files\\nodejs\\node.exe" "c:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "intercept-proxy"
398 error cwd c:\src
399 error node -v v0.8.9
400 error npm -v 1.1.61
401 error path C:\Users\johan.obrink.24HRCOM\AppData\Roaming\npm\node_modules\intercept-proxy\bin\intercept-proxy
402 error code ENOENT
403 error errno 34
404 verbose exit [ 34, true ]

我尝试用谷歌搜索 ENOENT、chown + Windows,但似乎没有进一步了解。

完整代码在https://github.com/JohanObrink/intercept-proxy

编辑:我现在已经在 OS X 上尝试过了,问题是一样的。与 Windows 无关 - 显然与我有关。但是仍然找不到问题所在。

【问题讨论】:

    标签: node.js npm


    【解决方案1】:

    ENOENT 表示没有这样的文件或目录。 如果换成这个会怎么样?

    "bin": {
        "intercept-proxy": "./bin/intercept-proxy.js"
    }
    

    【讨论】:

    • 谢谢!就是这样。你有没有机会知道为什么 express 没有 .js 而我不知道?
    • 现在我看到 express.js 实际上将它的 bin 文件命名为 express - 没有 .js。这就是它起作用的原因:/
    • Lars,你想使用'main',而不是'bin'。前任。 "main": "./bin/yomama" (没有 JS)
    • 是的,如果您使用 npm init 自动创建 package.json,npm 似乎会这样做。
    猜你喜欢
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-03
    • 1970-01-01
    • 2020-05-23
    • 2017-09-14
    • 2018-06-06
    相关资源
    最近更新 更多