Laravel迁移到mix会删除无效的NODE_OPTIONS环境变量:不允许使用openssl旧版提供程序



当我运行yarn run dev时,它编译时没有任何问题,但当我运行iarn run prod时,我得到了以下错误:

✖ Mix
Compiled with some errors in 21.47s
ERROR in /js/app.js
/js/app.js from Terser plugin
Initiated Worker with invalid NODE_OPTIONS env variable: --openssl-legacy-provider is not allowed in NODE_OPTIONS
Error [ERR_WORKER_INVALID_EXEC_ARGV]: Initiated Worker with invalid NODE_OPTIONS env variable: --openssl-legacy-provider is not allowed in NODE_OPTIONS
at new NodeError (node:internal/errors:371:5)
at new Worker (node:internal/worker:194:13)
at ExperimentalWorker.initialize (/var/www/dashboard-v2/node_modules/jest-worker/build/workers/NodeThreadsWorker.js:149:20)
at new ExperimentalWorker (/var/www/dashboard-v2/node_modules/jest-worker/build/workers/NodeThreadsWorker.js:145:10)
at WorkerPool.createWorker (/var/www/dashboard-v2/node_modules/jest-worker/build/WorkerPool.js:44:12)
at new BaseWorkerPool (/var/www/dashboard-v2/node_modules/jest-worker/build/base/BaseWorkerPool.js:127:27)
at new WorkerPool (/var/www/dashboard-v2/node_modules/jest-worker/build/WorkerPool.js:30:1)
at new Worker (/var/www/dashboard-v2/node_modules/jest-worker/build/index.js:167:26)
at getWorker (/var/www/dashboard-v2/node_modules/terser-webpack-plugin/dist/index.js:391:9)
at /var/www/dashboard-v2/node_modules/terser-webpack-plugin/dist/index.js:494:41
at next (/var/www/dashboard-v2/node_modules/terser-webpack-plugin/dist/utils.js:90:7)
at Array.forEach (<anonymous>)
at /var/www/dashboard-v2/node_modules/terser-webpack-plugin/dist/utils.js:93:26
at new Promise (<anonymous>)
at throttleAll (/var/www/dashboard-v2/node_modules/terser-webpack-plugin/dist/utils.js:62:10)
at TerserPlugin.optimize (/var/www/dashboard-v2/node_modules/terser-webpack-plugin/dist/index.js:651:34)
webpack compiled with 1 error
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
root@fe7a5c6ae6f9:/var/www/dashboard-v2# 

我已经删除了所有从0安装的node_module,并将其全部更新为最新版本。知道如何解决这个问题吗?

Node v17.x给出了这个问题。

我建议你换到v16。在Linux上,这很容易,你只需在系统上重新选择旧版本:

sudo n

它会向你显示系统上的旧版本,如果有的话,你可以切换到。如果你找不到任何v16,你必须手动安装。

请参阅https://ostechnix.com/how-to-manage-nodejs-versions-with-n-in-linux/

确实尝试了很多事情,其中一个选项是按照usernotnull的建议将节点恢复到v16,但希望找到真正的问题。

它认为,如果它是php 7.4或更低,那么它会尝试加载依赖项,当php升级到8时,在cli上也没有错误。

同样从laravel 7升级到8,需要更新依赖关系。

升级后,这样做也很好,没有缓存或视图留下:

php artisan config:clear
php artisan cache:clear
composer dump-autoload
php artisan view:clear
php artisan route:clear

从那时起,所有的工作和没有得到上述错误。

最新更新