我使用angular 8 and CLI 8
创建了一个角度库。我正在尝试构建库,但出现错误。
ng build <lib-name>
我已经解决了一些与此错误有关的问题,其中大多数都说删除node_modules
并重新安装。我尝试了此解决方案,但仍然出现以下错误。
[浏览器列表]无法解析package.json。忽略它。
ERROR: Unknown version 67 of android
Unknown version 67 of android
BrowserslistError: Unknown version 67 of android
at Function.select (C:\Users\kaukhare\github\ngx-group-by-alphabates\node_modules\ng-packagr\node_modules\autoprefixer\node_modules\browserslist\index.js:924:17)
at C:\Users\kaukhare\github\ngx-group-by-alphabates\node_modules\ng-packagr\node_modules\autoprefixer\node_modules\browserslist\index.js:252:33
at Array.reduce (<anonymous>)
at resolve (C:\Users\kaukhare\github\ngx-group-by-alphabates\node_modules\ng-packagr\node_modules\autoprefixer\node_modules\browserslist\index.js:234:18)
at browserslist (C:\Users\kaukhare\github\ngx-group-by-alphabates\node_modules\ng-packagr\node_modules\autoprefixer\node_modules\browserslist\index.js:353:16)
at Browsers.parse (C:\Users\kaukhare\github\ngx-group-by-alphabates\node_modules\ng-packagr\node_modules\autoprefixer\lib\browsers.js:66:12)
at new Browsers (C:\Users\kaukhare\github\ngx-group-by-alphabates\node_modules\ng-packagr\node_modules\autoprefixer\lib\browsers.js:48:26)
at loadPrefixes (C:\Users\kaukhare\github\ngx-group-by-alphabates\node_modules\ng-packagr\node_modules\autoprefixer\lib\autoprefixer.js:101:20)
at plugin (C:\Users\kaukhare\github\ngx-group-by-alphabates\node_modules\ng-packagr\node_modules\autoprefixer\lib\autoprefixer.js:112:20)
at LazyResult.run (C:\Users\kaukhare\github\ngx-group-by-alphabates\node_modules\postcss\lib\lazy-result.js:295:14)
at LazyResult.sync (C:\Users\kaukhare\github\ngx-group-by-alphabates\node_modules\postcss\lib\lazy-result.js:281:26)
at LazyResult.warnings (C:\Users\kaukhare\github\ngx-group-by-alphabates\node_modules\postcss\lib\lazy-result.js:85:17)
at StylesheetProcessor.process (C:\Users\kaukhare\github\ngx-group-by-alphabates\node_modules\ng-packagr\lib\ng-v5\entry-point\resources\stylesheet-processor.js:47:16)
at Object.readResource (C:\Users\kaukhare\github\ngx-group-by-alphabates\node_modules\ng-packagr\lib\ts\cache-compiler-host.js:73:57)
at TsCompilerAotCompilerTypeCheckHostAdapter.loadResource (C:\Users\kaukhare\github\ngx-group-by-alphabates\node_modules\@angular\compiler-cli\src\transformers\compiler_host.js:495:37)
at Object.get (C:\Users\kaukhare\github\ngx-group-by-alphabates\node_modules\@angular\compiler\bundles\compiler.umd.js:26490:94)
可能是什么问题?该错误是由于autoprefixer
引起的吗?我应该怎么做才能解决这个问题?
package-lock.json
"ng-packagr": {
"version": "5.5.1",
"resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-5.5.1.tgz",
"integrity": "sha512-GT6QK5WAirQwALdeJPiXdgRd5PzRqcknb/C/G+cCDEbUFri4oGVmns2Nl4I0FGg/cRn6nXTxRiUunOSqZ3Lehw==",
"dev": true,
"requires": {
"ajv": "^6.10.2",
"autoprefixer": "^9.6.0",
"browserslist": "^4.0.0"
},
"autoprefixer": {
"version": "9.5.1",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.5.1.tgz",
"integrity": "sha512-KJSzkStUl3wP0D5sdMlP82Q52JLy5+atf2MHAre48+ckWkXgixmfHyWmA77wFDy6jTHU6mIgXv6hAQ2mf1PjJQ==",
"dev": true,
"requires": {
"browserslist": "^4.5.4",
"caniuse-lite": "^1.0.30000957",
"normalize-range": "^0.1.2",
"num2fraction": "^1.2.2",
"postcss": "^7.0.14",
"postcss-value-parser": "^3.3.1"
}
答案 0 :(得分:10)
为我解决问题的是运行
npx browserslist --update-db
在项目根目录中。这对 package-lock.json
的 caniuse-lite
更新版本进行了更改。
为了提供一些背景信息,我提出了这个问题,因为我收到了这个错误:
Compiling TypeScript sources through ngc
ERROR: Unknown version 80 of android
An unhandled exception occurred: Unknown version 80 of android
在我将 angular 从 9.x.x 升级到 10.x.x 之后。
我在我的开发机器和 CI 中都遇到了这个错误,所以删除 node_modules
和 package-lock.json
并不是一个真正的选择。
答案 1 :(得分:1)
我更新了所有npm软件包,错误消失了。
答案 2 :(得分:1)
尝试在 924 行中修改 \ node_modules \ ng-packagr \ node_modules \ autoprefixer \ node_modules \ browserslist \ index.js ,如下所示:
if (alias) {
version = alias
} else if (context.ignoreUnknownVersions) {
return []
} else {
throw new BrowserslistError(
'Unknown version ' + version + ' of ' + name)
}
在
if (alias) {
version = alias
} else if (context.ignoreUnknownVersions) {
return []
} else {
return []
}
希望对您有帮助...这是肮脏的解决方法...
答案 3 :(得分:0)
我也看到了这一点……像您一样,删除node_modules并重新运行npm install无效。
有效的方法是删除node_modules并删除package-lock.json,然后运行npm i。
尝试...
安德鲁
答案 4 :(得分:0)
尝试一下:
1。删除整个node_modules目录。
2。从根目录中删除package-lock.json。
3。确保在package.json中引用了最新的@ angular-devkit项目:
“ @ angular-devkit / build-angular”:“ ^ 0.801.3”,“ @ angular-devkit / build-ng-packagr”:“ ^ 0.801.3”。
4。关闭并重新打开cmd窗口。
正在运行npm安装。
答案 5 :(得分:0)
可能是由过时的 babel 引起的。尝试使用 npx babel-upgrade --write
和 npx browserslist@latest --update-db
更新 babel。