gpt4 book ai didi

node.js - Linux 或 osx 上无法识别 Node bin 文件

转载 作者:太空宇宙 更新时间:2023-11-03 22:54:20 25 4
gpt4 key购买 nike

我一直在使用 Windows 上的 PyCharm 开发一个 Node cli 应用程序,它只能在 Windows 上运行,但在 Linux 上运行时总是返回 : No such file or directory 。我已经能够使用一个相当基本的示例作为测试来重现该问题。尝试安装每个版本,并注意从 Windows 发布的版本如何无法在 Linux 或 OSX 上运行。

从 Windows 发布:npm -g install cli-test@1.0.0 && cli-test

从 Linux 发布:npm -g install cli-test@2.0.0 && cli-test

package.json:

{
"name": "cli-test",
"version": "0.0.1",
"bin": {
"cli-test": "./cli.js"
}
}

cli.js

#!/usr/bin/env node
console.log('hello world!');

如果我编写此代码,然后使用 Linux 上的项目目录中的 sudo npm -g install 来安装它,然后运行 ​​cli-test ,则会抛出上述错误。如果我在 Windows 中执行相同的操作,它会正确地进行控制台记录。

我可以通过以下步骤让它在 Linux 上运行:

  1. 在 Linux 上打开项目目录
  2. cli.js 重命名为 cli.old.js
  3. 创建一个名为 cli.js 的新文件
  4. 将旧文件的内容复制到新文件

当我从 Windows 发布到 npm 而不从 Linux 手动重新创建文件时,为什么它不能在 Linux 上运行?

最佳答案

基于 Windows 的行结尾会害死你。完整的错误显示,env: node\r: No such file or directory 因为 Windows 在那里放入\r(作为换行符的\r\n 的一部分),但 Linux 和 OSX 仅使用\n 换行符。

NPM 的 github 问题上正在对此进行讨论,以及几种可能的解决方法:https://github.com/npm/npm/issues/2097

关于node.js - Linux 或 osx 上无法识别 Node bin 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28144988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com