NodeJS意外严格模式保留字“ let”,在安装ejs(不是我的代码)时

问题描述 投票:0回答:1

[尝试使用npm install安装节点应用程序时得到此输出:

$ npm install
> [email protected] postinstall /home/dh_8u42k7/quotegoodeair.com/node_modules/ejs
> node ./postinstall.js

/home/dh_8u42k7/quotegoodeair.com/node_modules/ejs/postinstall.js:9
let envDisable = isTrue(process.env.DISABLE_OPENCOLLECTIVE) || isTrue(process.
^^^
SyntaxError: Unexpected strict mode reserved word

我已经找到this question,其中包含一种解决方法。但是,这不是我自己的代码,因此我不能仅删除“ let”,这似乎与ejs本身有关。

另外,文件postinstall.js甚至不存在,甚至ejs文件夹都不存在,所以我不能只是进入编辑该文件。

我的节点应用程序,ejsnpm或Node本身有问题吗?为什么Node会安装Node不支持的组件?为什么Node会告诉我文件中不存在错误?

node.js ejs
1个回答
0
投票

可能是您的节点版本不支持您要安装的应用程序中的功能。

一种解决方案可能是找出您尝试安装的应用程序最初使用的节点版本。

我相信您可以检查package.json文件中的engine字段。

如果您的本地节点版本不同,并且您需要更改它,那么这里是指向提供该信息的问题的链接:How can I specify the required Node.js version in package.json?

我也发现这篇文章很有趣:https://github.com/tj/n/issues/472

用于其他应用程序,但是他们收到相同的错误消息。问题是npm文件夹冲突。如果要在其中安装应用程序的目录中还有其他nom文件夹,则您尝试安装的程序可能与现有的npm设置冲突。

最终,鉴于您提供的信息,我认为最好的办法是查看您要安装的应用程序的package.json文件,并查看您的本地设置是否与该程序的安装方式冲突或运行。

© www.soinside.com 2019 - 2024. All rights reserved.