【问题标题】:SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode installing SASS node packageSyntaxError:在安装 SASS 节点包的严格模式之外尚不支持块范围的声明(let、const、函数、类)
【发布时间】:2023-04-07 07:44:01
【问题描述】:

尝试安装 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 这样的简单命令。我会一遍又一遍地遇到同样的问题。

你能帮帮我吗?

【问题讨论】:

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


    【解决方案1】:

    是npm上的reported bug,6.0.0以上的版本不支持Node 6.0.0以下的Node版本。 如果你跑 节点-v 强烈怀疑您的 Node 版本早于 Node 6.0.0

    我无意中将 npm 从 2.14.20 版本升级到最新的稳定版本,在 v4.4.0 上使用 NodeJS,也遇到了同样的困难。 问题是你不能只升级 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 以检查版本。它们都应该升级。

    希望这会有所帮助。 :)

    【讨论】:

    • 不确定更改顺序是否会破坏答案的清晰性...无论如何,请务必下载新版本之前删除以前的Node安装(只是在如果您在获取新版本时遇到问题,根据您的应用程序限制,让 Node 卸载这么长时间可能会很麻烦)
    【解决方案2】:

    看起来像是踢掉整个包并重新安装它,然后“自动删除”以前的包解决了这个问题。非常感谢大家!

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-14
        • 2017-06-17
        • 1970-01-01
        • 2018-04-02
        • 2016-01-05
        • 1970-01-01
        • 2017-08-16
        相关资源
        最近更新 更多