Angular ng build——来自UglifyJs的产品错误

Angular ng build——来自UglifyJs的产品错误,angular,angular-cli,Angular,Angular Cli,我用angular cli创建了一个项目 ng build没问题。出乎意料的是,当我使用ng build--prod时,会出现以下错误: ERROR in vender.d6758a1e6b8a2151c741.bundle.js from UglifyJs Unexpected character '`' 我在谷歌上搜索并找到一些解决方法 “目标”:tsconfig.json文件中的“es5”,但默认情况下目标为es5。我不知道我的代码中是否有问题或使用了错误的设置 "dependencie

我用angular cli创建了一个项目 ng build没问题。出乎意料的是,当我使用ng build--prod时,会出现以下错误:

ERROR in vender.d6758a1e6b8a2151c741.bundle.js from UglifyJs
Unexpected character '`'
我在谷歌上搜索并找到一些解决方法 “目标”:tsconfig.json文件中的“es5”,但默认情况下目标为es5。我不知道我的代码中是否有问题或使用了错误的设置

"dependencies": {
    "@angular/animations": "^4.0.1",
    "@angular/common": "^4.0.0",
    "@angular/compiler": "^4.0.0",
    "@angular/core": "^4.0.0",
    "@angular/forms": "^4.0.0",
    "@angular/http": "^4.0.0",
    "@angular/platform-browser": "^4.0.0",
    "@angular/platform-browser-dynamic": "^4.0.0",
    "@angular/router": "^4.0.0",
    "core-js": "^2.4.1", 
    "primeng": "^2.0.1",
    "rxjs": "^5.1.0",
     "underscore": "^1.8.3",
     "zone.js": "^0.8.4"
},
"devDependencies": {
    "@angular/cli": "1.0.0",
    "@angular/compiler-cli": "^4.0.0",
    "@types/jasmine": "2.5.38",
    "@types/node": "~6.0.60",
    "@types/underscore": "^1.8.0",
    "codelyzer": "~2.0.0",
    "jasmine-core": "~2.5.2",
    "jasmine-spec-reporter": "~3.2.0",
    "karma": "~1.4.1",
    "karma-chrome-launcher": "~2.0.0",
    "karma-cli": "~1.0.1",
    "karma-jasmine": "~1.1.0",
    "karma-jasmine-html-reporter": "^0.2.2",
    "karma-coverage-istanbul-reporter": "^0.2.0",
    "protractor": "~5.1.0",
    "ts-node": "~2.0.0",
    "tslint": "~4.5.0",
    "typescript": "~2.2.0" 
} 

谢谢大家!

在Webpack.prod.js中更改如下配置

 plugins: [
    new webpack.NoEmitOnErrorsPlugin(),
    new webpack.optimize.UglifyJsPlugin({ // https://github.com/angular/angular/issues/10618
      mangle: {
        keep_fnames: true
      }
    }),
    new ExtractTextPlugin('[name].[hash].css'),
    new webpack.DefinePlugin({
      'process.env': {
        'ENV': JSON.stringify(ENV)
      }
    }),
    new webpack.LoaderOptionsPlugin({
      htmlLoader: {
        minimize: false // workaround for ng2
      }
    })
  ]

一旦使用ng eject从angular cli中弹出webpack.js,我们将丢失ng build、ng serve和其他angular cli命令。因此,我将推荐以下方法 要修复意外的字符“`”问题,请执行以下操作:

a。在package.json中将@angular/cli更新为1.5-rc.0版本:它修复了意外的令牌“`”问题

b。更新tsconfig.json以指向es2015依赖项: “目标”:“es2015”, “lib”:[ “es2015”, “dom” ]

这是一个有效的解决方案


请参阅:

我遇到了相同的问题,实际上,要修复此错误,只需在production.js文件中添加解决方法,由@Vignesh给出:

  htmlLoader: {
      minimize: false
  }

是的,在对这个问题做了许多小时的研究之后,我们终于找到了答案

第一个简单的安装“uglify js”

npm安装uglify js-g

如果这不能解决这个问题,请在
uglifyjs网页包插件中
/uglifyjs网页包插件/blob/v0.4.6/src/index.js#L90)

而不是
ast=compress.compress(ast)该行应该是

ast=ast.transform(压缩)


在大多数情况下,如果上述操作不起作用,则需要将angular版本升级到最新版本,并且必须将所有项目文件复制到新创建的文件夹中。这将毫无疑问地起作用,并将为您节省大量宝贵的研究时间。

您能将其作为答案吗