尝试安装LESS / SASS。并在Linux 16.04中安装node.js后得到此错误。 安装了LESS编译器并更新了npm,以便在失败的地方继续安装SASS,现在卡住了。
然后我出现此错误:
$Sudo npm update npm -g
/usr/local/lib/node_modules/npm/bin/npm-cli.js:82
let notifier = require('update-notifier')({pkg})
^^^
错误消息
SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:374:25)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Function.Module.runMain (module.js:442:10)
at startup (node.js:136:18)
at node.js:966:3
从那时起,我基本上什么也做不了。甚至没有运行像npm -v
这样的简单命令。我会一遍又一遍地遇到同样的问题。
能请你帮我吗?
答案 0 :(得分:2)
它是npm上的reported bug,高于6.0.0的版本不支持节点6.0.0下的节点版本。 如果你跑 节点-v 强烈怀疑您的Node版本早于Node 6.0.0
我遇到了同样的困难,即使用NodeJS v4.4.0将npm从2.14.20版本无偿升级到最新的稳定版本。 问题是您不能仅升级Node ,因为正如您提到的那样,npm已被完全阻止。
因此,我使用in this question描述的方法删除了节点:
我找到了存储Node组件的目录:
which node #this returned /path/bin/node
然后运行cd /path
最终运行
rm -r bin/node bin/node-waf include/node lib/node lib/pkgconfig/nodejs.pc share/man/man1/node.1
之后,node -v
和npm -v
将不会返回任何内容。
所以我dowloaded the node package for Linux : node-v8.11.3-linux-x64.tar.gz,将其存储在/ tmp中并解压缩:
tar --strip-components 1 -xzf /tmp/node-v8.11.3-linux-x64.tar.gz
再次运行npm -v
和node -v
以检查版本。它们都应该升级。
希望这会有所帮助。 :)
答案 1 :(得分:0)
由于let
和const
是ECMAScript2015语法,因此您可以尝试将node.js升级到支持es6语法的较新(或最新)版本。错误消息显示“在严格模式下尚不支持”。
答案 2 :(得分:0)
好像踢了整个软件包然后重新安装,然后“自动删除”以前的软件包即可解决此问题。非常感谢你们!