基础框架 - 启动基础框架zurb项目时出现“ReferenceError: primordials is not defined”的错误。

19

创建一个Foundation Zurb项目时出现错误。尝试使用先前为其他应用程序显示的建议解决,但没有任何效果。

有一篇文章提到更新elm,我也这样做了,但还是无法解决。此外,我还查看了Gulp 3的已关闭问题(我正在使用gulp 4),但没有可行的修复方法(Gulp 3在Node 12上存在问题#2324)或解决方法。

$ foundation new --framework emails
fs.js:27
const { Math, Object } = primordials;
                         ^

ReferenceError: primordials is not defined
    at fs.js:27:26
    at req_ (/usr/lib/node_modules/foundation-cli/node_modules/natives/index.js:143:24)
    at Object.req [as require] (/usr/lib/node_modules/foundation-cli/node_modules/natives/index.js:55:10)
    at Object.<anonymous> (/usr/lib/node_modules/foundation-cli/node_modules/graceful-fs/fs.js:1:37)
    at Module._compile (internal/modules/cjs/loader.js:759:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:770:10)
    at Module.load (internal/modules/cjs/loader.js:628:32)
    at Function.Module._load (internal/modules/cjs/loader.js:555:12)
    at Module.require (internal/modules/cjs/loader.js:666:19)
    at require (internal/modules/cjs/helpers.js:16:16)

我希望这个项目能够建立起来。


这是 https://github.com/zurb/foundation-sites/issues/11755 的转载吗? - user753676
2个回答

21

我猜你使用的是NodeJS 12或更新版本。
当前CLI不支持NodeJS 12(及更高版本)。请使用NodeJS 10。

您可以使用nvm、n、nodenv或任何其他管理NodeJS版本的解决方案切换到NodeJS 10。

primordialsnatives包的一部分,并在堆栈跟踪中作为graceful-fs包中的调用。

您可以尝试将graceful-fs依赖项从3升级到4,但这可能需要进行其他更改才能正常工作。

这是graceful-fs 3的fs.js文件:

module.exports = require('natives').require('fs', ['stream'])

来自npmjs.com上的natives页面:

此软件包已被弃用 作者留言:

此模块依赖于Node.js的内部机制,并将在某些时候中断。不要使用它,并更新到graceful-fs@4.x。

还请参阅https://travis-ci.com/DanielRuf/foundation-cli-test/builds/112738932

enter image description here

enter image description here

与我们拥有NodeJS 10的环境相比(gulp团队已删除4.0标签,您可以更改package.json中的行以引用gulp 4.0.0),请进行比较:

enter image description here


2
我可以通过安装 nvm 来解决切换到 10.x 的问题,这也帮助我在需要时切换回其他任何 Node 版本。 - seniorpreacher
1
没错,你可以使用 n、nvm、nodenv 等工具。很高兴这解决了你的问题。 - user753676
截至2021年9月27日(以及Foundation 6.7.2版本),这是绝对正确的答案。我点赞了问题和答案,因为它们都是正确、清晰、简单和快速的,如果它们有更多的赞,它们就会在我的搜索结果中排名更高,我就不会浪费20个小时来努力让Foundation 6.7.x工作。 - adam-asdf

10

使用手动设置 (node v13.7.0) 对我有效。

要手动设置模板,请先使用 Git 下载:

git clone https://github.com/zurb/foundation-emails-template "projectname"

然后在您的命令行中打开该文件夹,并安装所需的依赖项:

cd projectname

npm install

这在我的电脑上编译时出现错误(node v12.18.1)。 - Ade
老铁!或者女士?这个方法在我使用的 node v12.18.3 和 npm 7.8.0 上运行良好。 - kenef

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接