[英]When run angular 8 production: Delete of an unqualified identifier in strict mode
When I compile my angular8 (cli) project in production mode by当我在生产模式下编译我的 angular8 (cli) 项目时
ng build --aot=true --prod --optimization=true --buildOptimizer=true
then when I put dist
to file serwer and open browser I get error in console and black screen:然后当我将dist
放入文件服务器并打开浏览器时,我在控制台和黑屏中出现错误:
Uncaught SyntaxError: Delete of an unqualified identifier in strict mode.未捕获的语法错误:在严格模式下删除非限定标识符。
main-es2015.4c04714d1d600593094f.js:1 main-es2015.4c04714d1d600593094f.js:1
When I open main-es...js
js file I see当我打开main-es...js
js 文件时,我看到
hasWebGL: function() { if (!window.WebGLRenderingContext) return 0; var e = document.createElement("canvas") , t = e.getContext("webgl2"); return t ? 2 : (t = e.getContext("experimental-webgl2")) ? 2 : (t = e.getContext("webgl")) || (t = e.getContext("experimental-webgl")) ? 1 : 0 }(), hasCursorLock: (p = document.createElement("canvas"), p.requestPointerLock || p.mozRequestPointerLock || p.webkitRequestPointerLock || p.msRequestPointerLock ? 1 : 0), hasFullscreen: function() { var e = document.createElement("canvas"); return (e.requestFullScreen || e.mozRequestFullScreen || e.msRequestFullscreen || e.webkitRequestFullScreen) && (-1 == s.indexOf("Safari") || l >= 10.1) ? 1 : 0 }(), hasThreads: "undefined" != typeof SharedArrayBuffer, hasWasm: "object" == typeof WebAssembly && "function" == typeof WebAssembly.validate && "function" == typeof WebAssembly.compile, hasWasmThreads: function() { if ("object" != typeof WebAssembly) return !1; if ("undefined" == typeof SharedArrayBuffer) return !1; var e = new WebAssembly.Memory({ initial: 1, maximum: 1, shared: !0 }) , t = e.buffer instanceof SharedArrayBuffer; return delete e,t // HERE IS PROBLEM !!!!!!!! }()
Below I add package.json下面我添加 package.json
{ "name": "my-project", "version": "0.0.0", "scripts": { "ng": "ng", "start": "ng serve --host 0.0.0.0 --port 3002 --disable-host-check --poll 1", "build": "cp ./src/environments/environment.prod.ts ./src/environments/environment.ts && ng build --aot=true --prod --optimization=true --buildOptimizer=true", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e" }, "private": true, "dependencies": { "@angular/animations": "~8.0.0", "@angular/common": "~8.0.0", "@angular/compiler": "~8.0.0", "@angular/core": "~8.0.0", "@angular/forms": "~8.0.0", "@angular/platform-browser": "~8.0.0", "@angular/platform-browser-dynamic": "~8.0.0", "@angular/router": "~8.0.0", "@ngx-translate/core": "^11.0.1", "@ngx-translate/http-loader": "^4.0.0", "rxjs": "~6.4.0", "tslib": "^1.9.0", "zone.js": "~0.9.1" }, "devDependencies": { "@angular-devkit/build-angular": "~0.800.0", "@angular/cli": "~8.0.2", "@angular/compiler-cli": "~8.0.0", "@angular/language-service": "~8.0.0", "@fortawesome/fontawesome-free": "^5.9.0", "@types/jasmine": "~3.3.8", "@types/jasminewd2": "~2.0.3", "@types/node": "~8.9.4", "codelyzer": "^5.0.0", "jasmine-core": "~3.4.0", "jasmine-spec-reporter": "~4.2.1", "karma": "~4.1.0", "karma-chrome-launcher": "~2.2.0", "karma-coverage-istanbul-reporter": "~2.0.1", "karma-jasmine": "~2.0.1", "karma-jasmine-html-reporter": "^1.4.0", "protractor": "~5.4.0", "ts-node": "~7.0.0", "tslint": "~5.15.0", "typescript": "~3.4.3" } }
How to fix it?如何解决?
Ok - my mistake.好的 - 我的错误。 In one of my angular project files I use imports of external libraries在我的一个角度项目文件中,我使用了外部库的导入
import '../../../../assets/unity3d/Build/UnityLoader.js';
import '../../../../assets/unity3d/TemplateData/UnityProgress.js';
declare var UnityLoader : any;
declare var UnityProgress : any;
and forgot that angular insert them to build file main-es20...js
.忘记了 angular 插入它们来构建文件main-es20...js
。 The angular force strict mode
for that imported code and this cause error inside that libraries.该导入代码的角度强制strict mode
,这会导致该库中的错误。 When I remove that imports (but left declare
statements) and link libraries in <script ...>
tags inside index.html
(where strict mode
is off as default) everything works fine without any errors.当我删除index.html
中的<script ...>
标签中的导入(但保留declare
语句)和链接库(其中strict mode
默认关闭)时,一切正常,没有任何错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.