React JS 运行脚本构建无法编译

Posted

技术标签:

【中文标题】React JS 运行脚本构建无法编译【英文标题】:React JS run-script build fails to compile 【发布时间】:2020-01-21 16:14:12 【问题描述】:

问题描述

>> npm run-script build 编译失败

预期行为

编译成功,build文件夹包含一个缩小的项目,输出没有错误

实际行为

输出给出以下错误:

react-scripts build

Creating an optimized production build...
Failed to compile.

Failed to minify the bundle. Error: static/js/main.e3925110.chunk.js from Terser
Name expected [static/js/main.e3925110.chunk.js:186,5]
    at compiler.run (C:\Users\Zackyy\Desktop\ReactCoding\wanawiipuri\node_modules\react-scripts\scripts\build.js:176:23)
    at finalCallback (C:\Users\Zackyy\Desktop\ReactCoding\wanawiipuri\node_modules\webpack\lib\Compiler.js:257:39)
    at hooks.done.callAsync.err (C:\Users\Zackyy\Desktop\ReactCoding\wanawiipuri\node_modules\webpack\lib\Compiler.js:273:13)
    at AsyncSeriesHook.eval [as callAsync] (eval at create (C:\Users\Zackyy\Desktop\ReactCoding\wanawiipuri\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:6:1)
    at AsyncSeriesHook.lazyCompileHook (C:\Users\Zackyy\Desktop\ReactCoding\wanawiipuri\node_modules\tapable\lib\Hook.js:154:20)
    at onCompiled (C:\Users\Zackyy\Desktop\ReactCoding\wanawiipuri\node_modules\webpack\lib\Compiler.js:271:21)
    at hooks.afterCompile.callAsync.err (C:\Users\Zackyy\Desktop\ReactCoding\wanawiipuri\node_modules\webpack\lib\Compiler.js:671:15)
    at AsyncSeriesHook.eval [as callAsync] (eval at create (C:\Users\Zackyy\Desktop\ReactCoding\wanawiipuri\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:6:1)
    at AsyncSeriesHook.lazyCompileHook (C:\Users\Zackyy\Desktop\ReactCoding\wanawiipuri\node_modules\tapable\lib\Hook.js:154:20)
    at compilation.seal.err (C:\Users\Zackyy\Desktop\ReactCoding\wanawiipuri\node_modules\webpack\lib\Compiler.js:668:31)
    at AsyncSeriesHook.eval [as callAsync] (eval at create (C:\Users\Zackyy\Desktop\ReactCoding\wanawiipuri\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:6:1)
    at AsyncSeriesHook.lazyCompileHook (C:\Users\Zackyy\Desktop\ReactCoding\wanawiipuri\node_modules\tapable\lib\Hook.js:154:20)
    at hooks.optimizeAssets.callAsync.err (C:\Users\Zackyy\Desktop\ReactCoding\wanawiipuri\node_modules\webpack\lib\Compilation.js:1385:35)
    at AsyncSeriesHook.lazyCompileHook (C:\Users\Zackyy\Desktop\ReactCoding\wanawiipuri\node_modules\tapable\lib\Hook.js:154:20)
    at hooks.optimizeChunkAssets.callAsync.err (C:\Users\Zackyy\Desktop\ReactCoding\wanawiipuri\node_modules\webpack\lib\Compilation.js:1376:32)
Read more here: *removed*

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! wanawiipuri@0.1.0 build: `react-scripts build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the wanawiipuri@0.1.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Zackyy\AppData\Roaming\npm-cache\_logs\2019-09-20T15_06_48_248Z-debug.log

同样失败的可能修复

*** 社区对此有一些解决方案。第一个是npm i react-scripts --save-dev,这并没有什么不同。 第二个是npm i terser@3.14.1 --save,也没有进展。

Package.json


  "name": "wanawiipuri",
  "version": "0.1.0",
  "private": true,
  "dependencies": 
    "firebase": "^6.6.1",
    "firebase-admin": "^8.6.0",
    "firebase-redux": "0.0.5",
    "firebase-tools": "^7.3.2",
    "react": "^16.9.0",
    "react-dom": "^16.9.0",
    "react-redux": "^7.1.1",
    "react-redux-firebase": "^2.4.1",
    "react-router-dom": "^5.0.1",
    "redux": "^4.0.4",
    "redux-firestore": "^0.9.0",
    "redux-thunk": "^2.3.0",
    "universal-cookie": "^4.0.2"
  ,
  "scripts": 
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  ,
  "eslintConfig": 
    "extends": "react-app"
  ,
  "browserslist": 
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  ,
  "devDependencies": 
    "react-scripts": "^3.1.2",
    "terser": "^3.14.1"
  


其他信息

使用npx create-react-app 创建的项目。 / 视窗 10 1903, / VS代码/ ReactJS 库 / Firebase 托管/firestore 已初始化 /

我正在使用 npm,但我不知道基于纱线的可能修复是否可以做任何事情。尽管我尝试过,但到目前为止没有任何效果。

**编辑: 还尝试完全删除 terser 并安装两个 Terser@3.14.1,然后删除它并安装 Terser@3.16.1 以测试任何版本是否有效。版本之间没有区别。 还尝试将 terser 作为依赖项安装,包括 3.14.1 和 3.16.1。没有任何效果。

仅此项目无法构建。较旧的项目已成功构建。目前正在尝试找出可能是什么原因造成的。

【问题讨论】:

【参考方案1】:

我不知道 HOW 或 WHY,但以下解决方案对我有用。 我有这个 index.js 文件,其中包含将 firebase 与我的反应连接起来的代码。有这样一行:

import  env  from './.env';

后来用在

ReactDOM.render(<Provider store=store><App env=env /></Provider>, document.getElementById('root'));

所以我所做的只是注释掉了导入行和env=env 部分。不知道为什么它会起作用,也不知道我将来是否需要它,但这为我解决了问题。

【讨论】:

【参考方案2】:

This should be resolved in terser v3.16.1 - 尝试更新您的terser devDependency,就像您在v3.14.1 一样。

【讨论】:

您提供的线程对我没有任何可行的解决方案。我确实完全删除了 terser,重新安装了 3.14.1 和 3.16.1,但它们似乎都没有任何区别。

以上是关于React JS 运行脚本构建无法编译的主要内容,如果未能解决你的问题,请参考以下文章

在 react-native 中运行脚本预构建

运行 create-react-app 构建脚本时如何设置构建 .env 变量?

React Native的概述,React Native的优缺点,React Native开发/运行环境的搭建

初始 React npm start 构建失败

npm 运行构建反应 js

NPM 使用 React + Node + 同时运行构建如何?