我在Ubuntu 14.04上安装了node和npm,当我尝试使用任何npm命令时,我收到以下错误:
/usr/local/lib/node_modules/npm/lib/config/cmd-list.js:113
module.exports.aliases = Object.assign({}, shorthands, affordances)
^
TypeError: Object function Object() { [native code] } has no method 'assign'
at Object.<anonymous> (/usr/local/lib/node_modules/npm/lib/config/cmd-list.js:113:33)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at /usr/local/lib/node_modules/npm/lib/npm.js:37:17
at Object.<anonymous> (/usr/local/lib/node_modules/npm/lib/npm.js:471:3)
at Module._compile (module.js:456:26)
我是使用节点的新手,我没有在网上找到任何解决此类错误的方法
答案 0 :(得分:26)
您最有可能运行旧版本的node.js(使用node -v
验证,在撰写本文时,最新的lts为6.x)。我想你试图用apt-get install nodejs
或类似的方法安装它。 ubuntu 14附带的软件包已过时,请遵循nodejs' download page上的建议,并执行以下操作:
步骤1,删除旧包:
sudo apt-get remove --purge nodejs
步骤2,依次键入以下命令并按照屏幕显示:
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs
现在你安装了一个允许ES6方法的nodejs版本,因为Object.assign
就是其中之一
答案 1 :(得分:0)
npm可能是较旧的版本,
因此删除nodejs,
sudo apt-get remove nodejs
sudo apt-get remove npm
然后
sudo apt-get install curl #if you dont have curl
Node.js v6:
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs
Node.js v7:
curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs
Node.js 8:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
有关更多信息,package manager
答案 2 :(得分:0)
这在Ubuntu 18.04 上对我有用:
sudo apt install nodejs
sudo apt install npm
答案 3 :(得分:0)
#optional
sudo apt-get更新
#install curl(可选)
sudo apt-get install build-essential libssl-dev curl
#install curl节点软件包
curl -sL https://deb.nodesource.com/setup_6.x |须藤-E bash-
#Install节点
sudo apt-get install -y nodejs