升级到 Angular 5:TS6046 和 TS5024 错误
Upgraded to Angular 5 : TS6046 and TS5024 errors
我们将应用程序升级到 Angular 5.0.0,但在尝试 运行 ng serve
或 ng build
命令时遇到两个错误:
error TS6046: Argument for '--module' option must be: 'none', 'commonjs', 'amd', 'system', 'umd', 'es6', 'es2015', 'esnext'.
error TS5024: Compiler option 'lib' requires a value of type Array.
这是 tsconfig.js
文件:
{
"compileOnSave": true,
"compilerOptions": {
"module": "commonjs",
"outDir": "./dist/out-tsc",
"baseUrl": "src",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2017",
"dom"
]
},
"angularCompilerOptions": {
"preserveWhitespaces": false
}
}
和 package.json 文件:
{
"name": "",
"version": "",
"description": "",
"author": "",
"url": "",
"copyright": "",
"license": "",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e",
"generate-barrels": "barrelsby --delete"
},
"private": true,
"dependencies": {
"@agm/core": "^1.0.0-beta.1",
"@angular/animations": "^5.0.0",
"@angular/common": "^5.0.0",
"@angular/compiler": "^5.0.0",
"@angular/core": "^5.0.0",
"@angular/flex-layout": "^2.0.0-beta.10-4905443",
"@angular/forms": "^5.0.0",
"@angular/http": "^5.0.0",
"@angular/platform-browser": "^5.0.0",
"@angular/platform-browser-dynamic": "^5.0.0",
"@angular/platform-server": "^5.0.0",
"@angular/router": "^5.0.0",
"@angular/upgrade": "4.3.6",
"@ngx-translate/core": "^8.0.0",
"angular2-datatable": "^0.6.0",
"angular2-moment": "^1.7.0",
"chart.js": "2.7.0",
"core-js": "2.5.1",
"es6-shim": "^0.35.3",
"moment": "^2.18.1",
"ng2-charts": "1.6.0",
"ng2-nouislider": "^1.7.0",
"ng2-table": "^1.3.2",
"ng2-toastr": "^4.1.2",
"ngx-bootstrap": "1.9.3",
"ngx-webstorage": "^1.8.0",
"nouislider": "^10.1.0",
"rxjs": "^5.5.2",
"serializer.ts": "0.0.12",
"ts-helpers": "1.1.2",
"zone.js": "0.8.17"
},
"devDependencies": {
"@angular/cli": "^1.5.0",
"@angular/compiler-cli": "^5.0.0",
"@types/jasmine": "2.6.0",
"@types/node": "8.0.28",
"barrelsby": "0.0.8",
"codelyzer": "3.2.0",
"jasmine-core": "2.8.0",
"jasmine-spec-reporter": "4.2.1",
"karma": "1.7.1",
"karma-chrome-launcher": "2.2.0",
"karma-cli": "1.0.1",
"karma-coverage-istanbul-reporter": "1.3.0",
"karma-jasmine": "1.1.0",
"karma-jasmine-html-reporter": "0.2.2",
"protractor": "5.1.2",
"ts-node": "3.3.0",
"tslint": "^5.7.0",
"typescript": "^2.6.0",
"webpack": "^3.8.1"
},
"engines": {
"node": ">= 6.9.0",
"npm": ">= 3.0.0"
}
}
版本:
ng -v
=> 1.5.0
npm -v
=> 5.5.1
node -v
=> 9.0.0
在 Windows 10 上使用 Microsoft PowerShell 构建、运行、安装等
[更新]:部分解决方案#1.
如果使用 @angular/cli": "^1.4.0"
也会出现同样的错误。
我更新了 @angular/cli": "1.3.1"
并且 ng build 或 serve 命令工作,但它没有解决 @angular/cli
包的 ^1.5.0
或 ^1.4.0
版本的问题.
[更新 2]:最终工作代码:
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"module": "amd",
"target": "es2017",
"baseUrl": "",
"lib": [
"es2017"
],
"types": []
},
"exclude": [
"test.ts",
"**/*.spec.ts"
]
}
作为解决方法,我从
更新了 tsconfig.app.json
文件
"module": "es2017"
到
"module": "amd"
它对我有用。
希望对你有帮助。
将“模块”:“es2017”更改为“模块”:“amd”
我遇到类似的错误,如下所示:
TS6046 Build:Argument for '--jsx' option must be: 'preserve',
'react-native', 'react'
tsconfig.json
的值为 "jsx": "react-jsx"
。将其更改为 react
然后它起作用了。
我们将应用程序升级到 Angular 5.0.0,但在尝试 运行 ng serve
或 ng build
命令时遇到两个错误:
error TS6046: Argument for '--module' option must be: 'none', 'commonjs', 'amd', 'system', 'umd', 'es6', 'es2015', 'esnext'.
error TS5024: Compiler option 'lib' requires a value of type Array.
这是 tsconfig.js
文件:
{
"compileOnSave": true,
"compilerOptions": {
"module": "commonjs",
"outDir": "./dist/out-tsc",
"baseUrl": "src",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2017",
"dom"
]
},
"angularCompilerOptions": {
"preserveWhitespaces": false
}
}
和 package.json 文件:
{
"name": "",
"version": "",
"description": "",
"author": "",
"url": "",
"copyright": "",
"license": "",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e",
"generate-barrels": "barrelsby --delete"
},
"private": true,
"dependencies": {
"@agm/core": "^1.0.0-beta.1",
"@angular/animations": "^5.0.0",
"@angular/common": "^5.0.0",
"@angular/compiler": "^5.0.0",
"@angular/core": "^5.0.0",
"@angular/flex-layout": "^2.0.0-beta.10-4905443",
"@angular/forms": "^5.0.0",
"@angular/http": "^5.0.0",
"@angular/platform-browser": "^5.0.0",
"@angular/platform-browser-dynamic": "^5.0.0",
"@angular/platform-server": "^5.0.0",
"@angular/router": "^5.0.0",
"@angular/upgrade": "4.3.6",
"@ngx-translate/core": "^8.0.0",
"angular2-datatable": "^0.6.0",
"angular2-moment": "^1.7.0",
"chart.js": "2.7.0",
"core-js": "2.5.1",
"es6-shim": "^0.35.3",
"moment": "^2.18.1",
"ng2-charts": "1.6.0",
"ng2-nouislider": "^1.7.0",
"ng2-table": "^1.3.2",
"ng2-toastr": "^4.1.2",
"ngx-bootstrap": "1.9.3",
"ngx-webstorage": "^1.8.0",
"nouislider": "^10.1.0",
"rxjs": "^5.5.2",
"serializer.ts": "0.0.12",
"ts-helpers": "1.1.2",
"zone.js": "0.8.17"
},
"devDependencies": {
"@angular/cli": "^1.5.0",
"@angular/compiler-cli": "^5.0.0",
"@types/jasmine": "2.6.0",
"@types/node": "8.0.28",
"barrelsby": "0.0.8",
"codelyzer": "3.2.0",
"jasmine-core": "2.8.0",
"jasmine-spec-reporter": "4.2.1",
"karma": "1.7.1",
"karma-chrome-launcher": "2.2.0",
"karma-cli": "1.0.1",
"karma-coverage-istanbul-reporter": "1.3.0",
"karma-jasmine": "1.1.0",
"karma-jasmine-html-reporter": "0.2.2",
"protractor": "5.1.2",
"ts-node": "3.3.0",
"tslint": "^5.7.0",
"typescript": "^2.6.0",
"webpack": "^3.8.1"
},
"engines": {
"node": ">= 6.9.0",
"npm": ">= 3.0.0"
}
}
版本:
ng -v
=> 1.5.0
npm -v
=> 5.5.1
node -v
=> 9.0.0
在 Windows 10 上使用 Microsoft PowerShell 构建、运行、安装等
[更新]:部分解决方案#1.
如果使用 @angular/cli": "^1.4.0"
也会出现同样的错误。
我更新了 @angular/cli": "1.3.1"
并且 ng build 或 serve 命令工作,但它没有解决 @angular/cli
包的 ^1.5.0
或 ^1.4.0
版本的问题.
[更新 2]:最终工作代码:
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"module": "amd",
"target": "es2017",
"baseUrl": "",
"lib": [
"es2017"
],
"types": []
},
"exclude": [
"test.ts",
"**/*.spec.ts"
]
}
作为解决方法,我从
更新了 tsconfig.app.json
文件
"module": "es2017"
到
"module": "amd"
它对我有用。 希望对你有帮助。
将“模块”:“es2017”更改为“模块”:“amd”
我遇到类似的错误,如下所示:
TS6046 Build:Argument for '--jsx' option must be: 'preserve', 'react-native', 'react'
tsconfig.json
的值为 "jsx": "react-jsx"
。将其更改为 react
然后它起作用了。