SyntaxError:在安装SASS节点软件包的严格模式之外,尚不支持块范围的声明(let,const,函数,类)

时间:2018-07-21 12:27:50

标签: node.js linux npm sass syntax-error

尝试安装LESS / SASS。并在Linux 16.04中安装node.js后得到此错误。 安装了LESS编译器并更新了npm,以便在失败的地方继续安装SASS,现在卡住了。

执行以下步骤:

  1. sudo apt-get install node.js
  2. sudo apt-get更新
  3. sudo apt-get升级
  4. sudo apt-get install
  5. npm-节点数据包管理器
  6. sudo npm install -g less
  7. sudo npm install node-sass -g(发现无效)
  8. 尝试:sudo gem install 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这样的简单命令。我会一遍又一遍地遇到同样的问题。

能请你帮我吗?

3 个答案:

答案 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 -vnpm -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 -vnode -v以检查版本。它们都应该升级。

希望这会有所帮助。 :)

答案 1 :(得分:0)

由于letconst是ECMAScript2015语法,因此您可以尝试将node.js升级到支持es6语法的较新(或最新)版本。错误消息显示“在严格模式下尚不支持”。

答案 2 :(得分:0)

好像踢了整个软件包然后重新安装,然后“自动删除”以前的软件包即可解决此问题。非常感谢你们!