angular - TSConfig 未知的编译器选项 'lib'
我正在接手一个使用 TypeScript 1.8.10 的旧 Angular 1 项目。
但是我无法编译,它一直抛出这个错误给我:
Unknown compiler option 'lib'
如果我注释掉“lib”这一行,那么我将面临大量其他错误,例如
Property 'X' does not exist on type 'Y'
这是一个相当庞大的旧项目,我只希望它运行两周,因此由于时间安排,重新编码对我来说不是一个选择。
我已经尝试更改了许多版本的 TypeScript,但对我来说同样的问题仍然出现,我也尝试使用 --noImplicitUseStrict 构建,但这没有帮助。
这是我的 tsconfig.json 和 package.json
tsconfig.json
{
"compileOnSave": false,
"compilerOptions": {
"module": "commonjs",
"target": "es5",
"noImplicitUseStrict" : true,
"lib": ["es2015", "dom"]
},
"exclude": [
"bower_components",
"node_modules",
"typings"
]
}
{
"name": "xxx",
"version": "0.0.0",
"dependencies": {
"@types/jquery": "^3.3.29",
"grunt": "^1.0.4",
"grunt-cli": "^1.3.2",
"gulp-awspublish": "^3.3.0",
"gulp-s3-deploy": "^1.0.1",
"moment": "^2.24.0",
"npm": "^6.9.0",
"socket.io-client": "^1.7.2"
},
"scripts": {
"test": "gulp test"
},
"devDependencies": {
"@angular/cli": "^7.3.3",
"browser-sync": "^2.26.5",
"browser-sync-spa": "~1.0.3",
"chalk": "~1.1.1",
"del": "~2.0.2",
"eslint-plugin-angular": "~0.12.0",
"estraverse": "~4.1.0",
"gulp": "^3.9.1",
"gulp-angular-templatecache": "~1.8.0",
"gulp-autoprefixer": "~3.0.2",
"gulp-awspublish": "^3.3.0",
"gulp-cssnano": "~2.1.1",
"gulp-eslint": "~1.0.0",
"gulp-filter": "~3.0.1",
"gulp-flatten": "~0.2.0",
"gulp-htmlmin": "~1.3.0",
"gulp-inject": "~3.0.0",
"gulp-load-plugins": "~0.10.0",
"gulp-protractor": "~2.1.0",
"gulp-rename": "~1.2.2",
"gulp-replace": "~0.5.4",
"gulp-rev": "~6.0.1",
"gulp-rev-replace": "~0.4.2",
"gulp-s3-deploy": "^1.0.1",
"gulp-sass": "~2.0.4",
"gulp-size": "~2.0.0",
"gulp-sourcemaps": "~1.6.0",
"gulp-uglify": "~1.4.1",
"gulp-useref": "^3.1.6",
"gulp-util": "~3.0.6",
"http-proxy-middleware": "^0.19.1",
"karma": "~0.13.10",
"karma-coverage": "~0.5.2",
"karma-jasmine": "~0.3.6",
"karma-ng-html2js-preprocessor": "~0.2.0",
"karma-phantomjs-launcher": "~0.2.1",
"karma-phantomjs-shim": "~1.2.0",
"lodash": "~3.10.1",
"main-bower-files": "^2.13.1",
"ng-annotate-loader": "0.0.10",
"phantomjs": "~1.9.18",
"ts-loader": "~0.8.0",
"tslint-loader": "~1.0.2",
"typescript": "^1.8.10",
"typings": "~0.7.9",
"uglify-save-license": "~0.4.1",
"webpack-stream": "~2.1.1",
"wiredep": "~2.2.2"
},
"engines": {
"node": ">=0.10.0"
}
}
请给我一些关于这方面的建议。我正在使用 Gulp 构建它。
答案#1
在我的情况下,我只是忘了在 npm build 之前 npm install。这可能对某些人有帮助。
答案#2
lib 是 TypeScript 2 的一个特性,正如你提到的,你正在使用 1.8。你可以从 tsconfig.json 中移除该 lib,或者尝试升级到更新的 TypeScript 版本。
在我的 package.json 中,我使用了以下开发依赖项:
"ts-loader": "^5.4.4",
"typescript": "^3.4.5",
然而,如果你升级,你可能会发现你的一些 TypeScript 代码会出现问题。
