微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

与 Docker 和 Angular localize 一起使用时,npm 构建失败

如何解决与 Docker 和 Angular localize 一起使用时,npm 构建失败

我正在处理一个相对较大的项目,我的目标是本地化。我已经完成了所有必要的工作,并且我没有在扩展现有的 Docker 文件以启用它。但是,它失败了。这是 Docker 文件(至少是它工作的部分):

FROM node:15.11.0-alpine3.13 as builder
workdir /app

copY package*.json ./
copY patch-webpack.js .
RUN npm ci --no-progress

RUN $(npm bin)/ng version

copY . .
RUN npm run build

它总是在 npm run build 处失败。

如果我在本地机器上构建项目,它运行得非常好。 这是错误日志(不幸的是,描述性不强)

ng "build"

Warning: Using differential loading with targets ES5 and ES2016 or higher may
cause problems. browsers with support for ES2015 will load the ES2016+ scripts
referenced with script[type="module"] but they may not support ES2016+ Syntax.
- Generating browser application bundles...
✔ browser application bundle generation complete.
- Generating ES5 bundles for differential loading...
✔ ES5 bundle generation complete.
- Generating localized bundles...
✖ Localized bundle generation Failed.
Call retries were exceeded
Error response from daemon: The command '/bin/sh -c npm run build' returned a non-zero code: 1
Failed to deploy '<unkNown> Dockerfile: build/Dockerfile': Can't retrieve image ID from build stream

以下是我希望相关的文件摘录:

{
  "scripts": {
    "ng": "ng","start": "ng serve --proxy-config proxy.conf.json","build": "npm run ng build --prod","postbuild": "build/replace-i18n-files.sh dist","test": "ng test","test-ci": "ng test --code-coverage --karmaConfig=build/karma-ci.conf.js ","lint": "ng lint ndb-core --type-check","e2e": "ng e2e","compodoc": "npx compodoc -c doc/compodoc_sources/.compodocrc.json","postinstall": "ngcc && node patch-webpack.js","docs:json": "compodoc -p ./tsconfig.json -e json -d .","storybook": "npm run docs:json && start-storybook -p 6006","build-storybook": "npm run docs:json && build-storybook","extract-i18n": "ng extract-i18n --output-path ./src/locale/ && xliffmerge --profile xliffmerge.json de"
  },"private": true,"dependencies": {
    "@angular/animations": "^11.2.14","@angular/cdk": "^11.2.13","@angular/common": "^11.2.14","@angular/compiler": "^11.2.14","@angular/core": "^11.2.14","@angular/flex-layout": "^11.0.0-beta.33","@angular/forms": "^11.2.14","@angular/localize": "^11.2.14","@angular/material": "^11.2.13","@angular/platform-browser": "^11.2.14","@angular/platform-browser-dynamic": "^11.2.14","@angular/router": "^11.2.14","@angular/service-worker": "^11.2.14","@ngneat/until-destroy": "^8.0.4","@sentry/browser": "^6.2.5","angulartics2": "^10.0.0","crypto-js": "^4.0.0","deep-object-diff": "^1.1.0","faker": "^5.5.3","font-awesome": "^4.7.0","idb": "^6.0.0","lodash": "^4.17.21","md5": "^2.3.0","moment": "^2.29.1","ngx-filter-pipe": "^2.1.2","ngx-markdown": "^11.1.3","ngx-papaparse": "^5.0.0","npm": "^7.14.0","pouchdb-adapter-memory": "^7.2.2","pouchdb-authentication": "^1.1.3","pouchdb-browser": "^7.2.2","reflect-Metadata": "^0.1.13","reveal": "0.0.4","rxjs": "^6.6.7","stream": "0.0.2","tslib": "^2.2.0","uuid": "^8.3.2","webdav": "^4.3.0","zone.js": "~0.11.4"
  },"devDependencies": {
    "@angular-devkit/build-angular": "~0.1102.3","@angular/cli": "^11.2.12","@angular/compiler-cli": "^11.2.12","@babel/core": "^7.13.8","@compodoc/compodoc": "^1.1.11","@schematics/angular": "^11.2.3","@storybook/addon-actions": "^6.1.21","@storybook/addon-essentials": "^6.1.21","@storybook/addon-links": "^6.1.21","@storybook/angular": "^6.1.21","@types/crypto-js": "^4.0.1","@types/faker": "^5.5.0","@types/file-saver": "^2.0.1","@types/jasmine": "~3.6.4","@types/lodash": "^4.14.168","@types/node": "^14.14.31","@types/pouchdb": "^6.4.0","babel-loader": "^8.2.2","codelyzer": "^6.0.1","husky": "^5.1.3","jasmine-core": "~3.7.1","jasmine-spec-reporter": "~6.0.0","karma": "~6.3.1","karma-chrome-launcher": "~3.1.0","karma-cli": "~2.0.0","karma-coverage-istanbul-reporter": "~3.0.3","karma-firefox-launcher": "^2.1.0","karma-jasmine": "~4.0.1","karma-jasmine-html-reporter": "^1.5.4","lint-staged": "^10.5.4","prettier": "^2.2.1","protractor": "~7.0.0","ts-node": "^9.1.1","tslint": "^6.1.3","tslint-config-prettier": "^1.18.0","tslint-plugin-prettier": "^2.3.0","typescript": "^4.1.5","webpack": "^4.6.0"
  }
}

angular.json:

{
  ... projects/project
  "i18n": {
    "sourceLocale": "en-US","locales": {
      "de": "src/locale/messages.de.xlf"
    }
  }
  ... projects/project/architect
  "build": {
    "builder": "@angular-devkit/build-angular:browser","options": {
      "aot": true,"outputPath": "dist","index": "src/index.html","main": "src/main.ts","tsConfig": "src/tsconfig.app.json","polyfills": "src/polyfills.ts","localize": true,"i18nMissingTranslation": "warning","assets": [
        "src/assets","src/favicon.ico","src/manifest.json"
      ],"styles": [
        "node_modules/font-awesome/scss/font-awesome.scss","src/ndb-theme.scss","src/styles.scss"
      ],"scripts": [
        "node_modules/marked/lib/marked.js"
      ]
    },"configurations": {
      "production": {
        "localize": true,"budgets": [
          {
            "type": "anyComponentStyle","maximumWarning": "6kb"
          }
        ],"optimization": true,"outputHashing": "all","sourceMap": false,"namedChunks": false,"aot": true,"extractLicenses": true,"vendorChunk": false,"buildOptimizer": true,"fileReplacements": [
          {
            "replace": "src/environments/environment.ts","with": "src/environments/environment.prod.ts"
          }
        ],"serviceWorker": true
      }
    }
  }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。