使用 laravel 微风运行 npm 时出现节点错误

Posted

技术标签:

【中文标题】使用 laravel 微风运行 npm 时出现节点错误【英文标题】:Node error when I run npm with laravel breeze 【发布时间】:2021-03-26 10:41:21 【问题描述】:

当我运行npm run devnpm run watch 时出现此错误,但我没有找到问题所在。它发生在一个全新的 Laravel 8 应用程序中。

当我使用开发命令时似乎会发生这种情况

ERROR in ./resources/css/app.css
Module build failed (from ./node_modules/css-loader/index.js):
ModuleBuildError: Module build failed (from ./node_modules/postcss-loader/src/index.js):
TypeError: [(...variantsValue),(...extensions)].flat is not a function
    at /var/www/html/smart_recipe/node_modules/tailwindcss/lib/util/resolveConfig.js:219:73
    at baseMergeDeep (/var/www/html/smart_recipe/node_modules/lodash/_baseMergeDeep.js:42:7)
    at /var/www/html/smart_recipe/node_modules/lodash/_baseMerge.js:27:7
    at /var/www/html/smart_recipe/node_modules/lodash/_createBaseFor.js:17:11
    at baseMerge (/var/www/html/smart_recipe/node_modules/lodash/_baseMerge.js:24:3)
    at /var/www/html/smart_recipe/node_modules/lodash/mergeWith.js:36:3
    at /var/www/html/smart_recipe/node_modules/lodash/_createAssigner.js:30:9
    at apply (/var/www/html/smart_recipe/node_modules/lodash/_apply.js:15:25)
    at /var/www/html/smart_recipe/node_modules/lodash/_overRest.js:32:12
    at mergeVariantExtensions (/var/www/html/smart_recipe/node_modules/tailwindcss/lib/util/resolveConfig.js:218:33)
    at resolveVariants (/var/www/html/smart_recipe/node_modules/tailwindcss/lib/util/resolveConfig.js:235:10)
    at resolveConfig (/var/www/html/smart_recipe/node_modules/tailwindcss/lib/util/resolveConfig.js:271:15)
    at /var/www/html/smart_recipe/node_modules/tailwindcss/lib/index.js:77:37
    at /var/www/html/smart_recipe/node_modules/tailwindcss/lib/processTailwindFeatures.js:52:20
    at LazyResult.run (/var/www/html/smart_recipe/node_modules/postcss/lib/lazy-result.js:288:14)
    at LazyResult.asyncTick (/var/www/html/smart_recipe/node_modules/postcss/lib/lazy-result.js:212:26)
    at LazyResult.asyncTick (/var/www/html/smart_recipe/node_modules/postcss/lib/lazy-result.js:225:14)
    at /var/www/html/smart_recipe/node_modules/postcss/lib/lazy-result.js:217:17
    at runLoaders (/var/www/html/smart_recipe/node_modules/webpack/lib/NormalModule.js:316:20)
    at /var/www/html/smart_recipe/node_modules/loader-runner/lib/LoaderRunner.js:367:11
    at /var/www/html/smart_recipe/node_modules/loader-runner/lib/LoaderRunner.js:233:18
    at context.callback (/var/www/html/smart_recipe/node_modules/loader-runner/lib/LoaderRunner.js:111:13)
    at Promise.resolve.then.then.catch (/var/www/html/smart_recipe/node_modules/postcss-loader/src/index.js:208:9)
 @ ./resources/css/app.css

【问题讨论】:

你是在项目根目录下运行的吗? @Bennett Ye ssure 【参考方案1】:

我遇到了同样的问题,花了 5 个小时寻找解决方案,但找不到。 经过大量搜索,我遇到了这个

“Tailwind CSS v2.0 不再支持 Node.js 8 或 10。要构建 CSS,您需要确保在本地和 CI 环境中运行 Node.js 12.13.0 或更高版本。”

https://tailwindcss.com/docs/upgrading-to-v2

所以我意识到问题出在我的 Node 版本中,它是 10.x 所以 我从我的 Windows 机器上卸载了 Node 并下载了 LTS 版本(14.x)。 所以考虑更新你的 Node 版本,它会解决这个问题,因为它确实对我有用。 旧节点版本可能没有 Tailwind CSS 2 实现的扁平化功能,这会引发错误。

【讨论】:

【参考方案2】:

我在安装 Breeze 后遇到了完全相同的问题......不幸的是,npm 错误消息没有给出真正发生了什么的线索!

感谢@DaniyalGondal,我发现我的节点版本由于 Breeze 附带的顺风 V2 要求(https://tailwindcss.com/docs/upgrading-to-v2)而引发了错误......所以我确实使用:sudo n latest 在 ubuntu20 下升级了我的节点版本

升级后不要忘记重新启动终端并检查您的节点是否已正确升级:node --version

如果节点版本高于 12.13.0,现在 npm run watchnpm run dev 应该可以正常工作了!

【讨论】:

这将解决问题,但也许最好指出解决问题的原因。可能 OP 不在节点版本 11.0.0 上。这是引入数组方法 .flat() 的节点版本。 你说得对!!如文档中所述,第一个功能版本似乎是 12.13.0...我现在将其添加到我的帖子中!

以上是关于使用 laravel 微风运行 npm 时出现节点错误的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5:使用 Vue 安装自定义组件时出现错误“不在 npm 注册表中”。

尝试 npm install web3 时出现致命错误 LNK1181

为 vue-cli 运行“npm run dev”时出现跨环境问题

Laravel 5.4 混合 npm 运行开发错误

[为什么在macOS Catalina上为Angular项目运行npm install时出现这些故障?

使用 vue/cli 运行 npm run serve 时出现问题