npm 错误语法错误:词意外(期望“)”)

Mad*_*ams 4 node.js npm

我正在尝试安装 npm 包“serialport”以在 Ubuntu 上使用 Node.js。

我有 Node.js 版本 4.3.1

当我尝试使用安装

sudo npm install serialport
Run Code Online (Sandbox Code Playgroud)

我收到以下错误;

/usr/local/bin/node: 1: /usr/local/bin/node: Syntax error: word unexpected (expecting ")")
Run Code Online (Sandbox Code Playgroud)

实际上我什至无法安装npm。我缺少依赖项;我在 Ubuntu 15 上。如何安装 npm?

当我尝试安装 NPM 时,出现以下错误:

Les paquets suivants contiennent des dépendances non satisfaites :
 npm : Dépend: nodejs mais ne sera pas installé
       Dépend: node-abbrev (>= 1.0.4) mais ne sera pas installé
       Dépend: node-ansi (>= 0.3.0-2) mais ne sera pas installé
       Dépend: node-ansi-color-table mais ne sera pas installé
       Dépend: node-archy mais ne sera pas installé
       Dépend: node-block-stream mais ne sera pas installé
       Dépend: node-fstream (>= 0.1.22) mais ne sera pas installé
       Dépend: node-fstream-ignore mais ne sera pas installé
       Dépend: node-github-url-from-git mais ne sera pas installé
       Dépend: node-glob (>= 3.1.21) mais ne sera pas installé
       Dépend: node-graceful-fs (>= 2.0.0) mais ne sera pas installé
       Dépend: node-inherits mais ne sera pas installé
       Dépend: node-ini (>= 1.1.0) mais ne sera pas installé
       Dépend: node-lockfile mais ne sera pas installé
       Dépend: node-lru-cache (>= 2.3.0) mais ne sera pas installé
       Dépend: node-minimatch (>= 0.2.11) mais ne sera pas installé
       Dépend: node-mkdirp (>= 0.3.3) mais ne sera pas installé
       Dépend: node-gyp (>= 0.10.9) mais ne sera pas installé
       Dépend: node-nopt (>= 3.0.1) mais ne sera pas installé
       Dépend: node-npmlog mais ne sera pas installé
       Dépend: node-once mais ne sera pas installé
       Dépend: node-osenv mais ne sera pas installé
       Dépend: node-read mais ne sera pas installé
       Dépend: node-read-package-json (>= 1.1.0) mais ne sera pas installé
       Dépend: node-request (>= 2.25.0) mais ne sera pas installé
       Dépend: node-retry mais ne sera pas installé
       Dépend: node-rimraf (>= 2.2.2) mais ne sera pas installé
       Dépend: node-semver (>= 2.1.0) mais ne sera pas installé
       Dépend: node-sha mais ne sera pas installé
       Dépend: node-slide mais ne sera pas installé
       Dépend: node-tar (>= 0.1.18) mais ne sera pas installé
       Dépend: node-underscore mais ne sera pas installé
       Dépend: node-which mais ne sera pas installé
E: Impossible de corriger les problèmes, des paquets défectueux sont en mode « garder en l'état »
Run Code Online (Sandbox Code Playgroud)

它是法语,但基本上是说缺少一些依赖项。它没有检测到我安装了 nodejs。

但是当我尝试重新安装 Node 时,它​​告诉我我已经有了更好的版本。

我还注意到我在 /usr/local/bin 中有 node 和 npm,但我还有另一个文件夹 /node-v4.3.1-linux-armv6l/ ,其中包含一个带有 node 和 npm 的 /bin 但还有一些文件夹,如 /include , /lib ,/共享

小智 7

安装 npm:

sudo apt-get update
sudo apt-get install npm
Run Code Online (Sandbox Code Playgroud)

然后我很确定您应该在安装软件包时删除该 sudo:

npm install serialport
Run Code Online (Sandbox Code Playgroud)

以下是更多信息:https : //www.digitalocean.com/community/tutorials/how-to-use-npm-to-manage-node-js-packages-on-a-linux-server


Shi*_*ado 5

我知道已经有一个明显的答案,但这对我没有帮助。

错误说javascript文件中有错误代码,所以我尝试用node执行这个javascript:

# nodejs /path_where_npm_is_linked/npm-cli.js
Run Code Online (Sandbox Code Playgroud)

这有效!所以我认为 npm 命令没有用正确的程序执行。也许问题是另一个与 nodejs 无关的可执行“节点”,或者是链接本身(npm 是指向 npm-cli.js 的链接)。甚至环境变量 NODE_PATH 也被配置为 nodejs。

所以我尝试制作自己的 npm 命令:

添加

alias npm='nodejs /opt/node-v6.11.1-linux-ppc64/bin/npm'
Run Code Online (Sandbox Code Playgroud)

.bashrc(或其他终端配置文件,如果您在其他发行版下)或.bash_aliases(它们在用户主文件夹中)重新启动终端并瞧:D

编辑:即使进行了此修改,某些软件包也不会安装(例如 node-sass)。所以必须做一个符号链接ln -s path_to_nodejs(ex. /usr/bin/nodejs) /usr/bin/node