gpt4 book ai didi

node.js - Node ,当我运行 package.json `bin` `command` 时,给我 `syntax error near unexpected token ` (' `

转载 作者:行者123 更新时间:2023-12-02 06:25:22 29 4
gpt4 key购买 nike

当我运行 package.json bin command 时,给我意外标记附近的语法错误(' ` .

package.json:

 "bin": {
"grabfilenames": "./index.js"
}

npm 链接:

/usr/local/bin/grabfilenames -> /usr/local/lib/node_modules/grabfilename/index.js                                                                                                                                                                               
/usr/local/lib/node_modules/grabfilename -> /Users/dulin/workspace/grabfilename

当我运行 cli 时:

grabfilenames -p/Users/dulin/workspace/learn-jquery

给我一​​个错误:

/usr/local/bin/grabfilenames: line 1: syntax error near unexpected token `('
/usr/local/bin/grabfilenames: line 1: `const fs = require('fs');'

如何解决?谢谢!

最佳答案

文档指出:

On install, npm will symlink that file into prefix/bin for global installs, or ./node_modules/.bin/ for local installs.

这意味着 npm 对您的文件没有什么特别的,并期望它可以在 unix 上执行。您的 bin 文件可以是 perl 脚本、已编译的 C 程序、shell 脚本、Ruby 脚本甚至是 node.js javascript 应用程序。

因此,导致你的应用程序运行的不是 npm。这是你的操作系统。因此,您的脚本必须是可执行的(正如我所说,它甚至可以是编译后的二进制文件)。

在 unix 上,要使用正确的解释器自动执行脚本,您需要有 sh-bang作为文件中的第一行。对于node.js,我通常使用这一行:

#! /usr/bin/env node

您通常可以只使用:

#! /whatever/path/to/node

但根据操作系统甚至发行版的不同,node.js 可能安装在不同的位置。所以 /usr/bin/env 是一个加载默认环境变量的程序,其中包括 $PATH ,它允许 shell 自动查找 Node.js 的安装位置。

关于node.js - Node ,当我运行 package.json `bin` `command` 时,给我 `syntax error near unexpected token ` (' `,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39585342/

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