BrowserslistError:未知的Android版本67

时间:2019-09-29 13:10:51

标签: javascript angular angular-library angular-cli-v8

我使用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"
      }

6 个答案:

答案 0 :(得分:10)

为我解决问题的是运行

npx browserslist --update-db

在项目根目录中。这对 package-lock.jsoncaniuse-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_modulespackage-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 --writenpx browserslist@latest --update-db 更新 babel。