模块模板编译期间出错。无法解析相对于 [object Object] 的组件
Error during template compile of module. Could not resolve component relative to [object Object]
我的项目文件夹结构为。
cable 文件夹的路径中有组件,/folder1/folder2/dialogs/changes-dialog/details-wizard/add-packages/new-package-definition/package-selection/package-selection.component
并且package.json是
{
"name": "my-project",
"version": "1.7.0",
"license": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve --proxy-config proxy.config.json --sourceMap=false",
"build": "ng build --aot --configuration production",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "~8.2.4",
"@angular/cdk": "~8.1.4",
"@angular/common": "~8.2.4",
"@angular/compiler": "~8.2.4",
"@angular/core": "~8.2.4",
"@angular/forms": "~8.2.4",
"@angular/material": "~8.1.4",
"@angular/material-moment-adapter": "~8.2.3",
"@angular/platform-browser": "~8.2.4",
"@angular/platform-browser-dynamic": "~8.2.4",
"@angular/router": "~8.2.4",
"@ng-select/ng-select": "^3.0.0",
"@tinymce/tinymce-angular": "^3.6.1",
"ag-grid": "^17.1.1",
"ag-grid-angular": "^17.1.0",
"bootstrap": "^4.6.0",
"chart.js": "^2.9.4",
"core-js": "^3.3.1",
"file-saver": "^2.0.2",
"font-awesome": "^4.7.0",
"hammerjs": "^2.0.8",
"jquery": "^3.6.0",
"lodash": "^4.17.21",
"moment": "^2.29.1",
"mydaterangepicker": "4.2.1",
"ng2-pdf-viewer": "^5.3.4",
"ngx-bootstrap": "^5.6.0",
"ngx-lightbox": "^2.0.0",
"ngx-moment": "^5.0.0",
"node-sass": "^4.9.4",
"popper.js": "^1.16.1",
"primeng": "5.2.5",
"rxjs": "~6.5.2",
"rxjs-compat": "~6.5.2",
"rxjs-tslint": "^0.1.8",
"tinymce": "^4.9.11",
"ts-helpers": "^1.1.2",
"ts-md5": "^1.2.9",
"zone.js": "^0.9.1"
},
"devDependencies": {
"@angular-devkit/build-angular": "^0.803.1",
"@angular/cli": "~8.3.1",
"@angular/compiler-cli": "~8.2.4",
"@angular/language-service": "~8.2.4",
"@types/jasmine": "~3.4.0",
"@types/jasminewd2": "~2.0.6",
"@types/lodash": "4.14.108",
"@types/node": "~8.9.4",
"codelyzer": "~5.1.0",
"jasmine-core": "~3.4.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~4.2.0",
"karma-chrome-launcher": "~3.1.0",
"karma-cli": "~2.0.0",
"karma-coverage-istanbul-reporter": "~2.1.0",
"karma-jasmine": "~2.0.1",
"karma-jasmine-html-reporter": "~1.4.2",
"protractor": "~5.4.2",
"ts-node": "~8.3.0",
"tslint": "~5.20.1",
"typescript": "~3.5.3",
"webdriver-manager": "12.0.6"
}
}
Dockerfile:
# Step 1: Build the app in image 'builder'
FROM node:10.23.0 AS builder
WORKDIR /usr/src/app
COPY package.json ./
RUN npm install
COPY . .
RUN npm run build
# Step 2: Use build output from 'builder'
FROM nginx:1.13
COPY --from=builder /usr/src/app/dist/my-project /usr/share/nginx/html
COPY --from=builder /usr/src/app/nginx/nginx.conf /etc/nginx/nginx.conf
当我 运行 [npm 运行 build] 命令时,它工作正常并创建了 dist 文件夹。但是当我 运行 使用 Dockerfile 执行相同的命令时,它失败并出现以下错误。
PS D:\projects\myproject> docker build -t myproject/ui .
[+] Building 242.5s (12/14)
=> [internal] load build definition from Dockerfile 0.6s
=> => transferring dockerfile: 32B 0.0s
=> [internal] load .dockerignore 0.8s
=> => transferring context: 34B 0.0s
=> [internal] load metadata for docker.io/library/nginx:1.13 5.5s
=> [internal] load metadata for docker.io/library/node:10.23.0 3.9s
=> [builder 1/6] FROM docker.io/library/node:10.23.0@sha256:57e6dc91af813f8d1c7e05d60871eca8cba67b1e120c1ae7192315114cf68de2 0.0s
=> [internal] load build context 0.9s
=> => transferring context: 102.96kB 0.5s
=> CACHED [stage-1 1/3] FROM docker.io/library/nginx:1.13@sha256:b1d09e9718890e6ebbbd2bc319ef1611559e30ce1b6f56b2e3b479d9da51dc35 0.0s
=> CACHED [builder 2/6] WORKDIR /usr/src/app 0.0s
=> CACHED [builder 3/6] COPY package.json ./ 0.0s
=> [builder 4/6] RUN npm install 165.5s
=> [builder 5/6] COPY . . 7.2s
=> ERROR [builder 6/6] RUN npm run build 61.5s
------
> [builder 6/6] RUN npm run build:
#12 8.157
#12 8.157 > my-project@1.7.0 build /usr/src/app
#12 8.157 > ng build configuration --production
#12 8.157
#12 60.40
#12 60.40 ERROR in app/modules/cable/cable.module.ts:59:57 - error TS2307: Cannot find module '../../components/cable/folder1/folder2/dialogs/changes-dialog/details-wizard/add-packages/new-package-definition/package-selection/package-selection.component'.
#12 60.40
#12 60.40 59 import {PackageSelectionComponent } from '../../components/cable/folder1/folder2/dialogs/changes-dialog/details-wizard/add-packages/new-package-definition/package-selection/package-selection.component ';
#12 60.40 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#14 74.16 ERROR in app/modules/cable/cable.module.ts(129,5): Error during template compile of 'CableModule'
#14 74.16
Could not
resolve ../../components/cable/folder1/folder2/dialogs/changes-dialog/details-wizard
/add-packages/new-package-definition/package-selection/package-selection.component relative to [object Object]..
似乎是由于docker引擎版本问题导致的错误。我使用的是最新版本并切换到旧版本 18.03.1-ce-win65,错误已修复。
我的项目文件夹结构为。
cable 文件夹的路径中有组件,/folder1/folder2/dialogs/changes-dialog/details-wizard/add-packages/new-package-definition/package-selection/package-selection.component
并且package.json是
{
"name": "my-project",
"version": "1.7.0",
"license": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve --proxy-config proxy.config.json --sourceMap=false",
"build": "ng build --aot --configuration production",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "~8.2.4",
"@angular/cdk": "~8.1.4",
"@angular/common": "~8.2.4",
"@angular/compiler": "~8.2.4",
"@angular/core": "~8.2.4",
"@angular/forms": "~8.2.4",
"@angular/material": "~8.1.4",
"@angular/material-moment-adapter": "~8.2.3",
"@angular/platform-browser": "~8.2.4",
"@angular/platform-browser-dynamic": "~8.2.4",
"@angular/router": "~8.2.4",
"@ng-select/ng-select": "^3.0.0",
"@tinymce/tinymce-angular": "^3.6.1",
"ag-grid": "^17.1.1",
"ag-grid-angular": "^17.1.0",
"bootstrap": "^4.6.0",
"chart.js": "^2.9.4",
"core-js": "^3.3.1",
"file-saver": "^2.0.2",
"font-awesome": "^4.7.0",
"hammerjs": "^2.0.8",
"jquery": "^3.6.0",
"lodash": "^4.17.21",
"moment": "^2.29.1",
"mydaterangepicker": "4.2.1",
"ng2-pdf-viewer": "^5.3.4",
"ngx-bootstrap": "^5.6.0",
"ngx-lightbox": "^2.0.0",
"ngx-moment": "^5.0.0",
"node-sass": "^4.9.4",
"popper.js": "^1.16.1",
"primeng": "5.2.5",
"rxjs": "~6.5.2",
"rxjs-compat": "~6.5.2",
"rxjs-tslint": "^0.1.8",
"tinymce": "^4.9.11",
"ts-helpers": "^1.1.2",
"ts-md5": "^1.2.9",
"zone.js": "^0.9.1"
},
"devDependencies": {
"@angular-devkit/build-angular": "^0.803.1",
"@angular/cli": "~8.3.1",
"@angular/compiler-cli": "~8.2.4",
"@angular/language-service": "~8.2.4",
"@types/jasmine": "~3.4.0",
"@types/jasminewd2": "~2.0.6",
"@types/lodash": "4.14.108",
"@types/node": "~8.9.4",
"codelyzer": "~5.1.0",
"jasmine-core": "~3.4.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~4.2.0",
"karma-chrome-launcher": "~3.1.0",
"karma-cli": "~2.0.0",
"karma-coverage-istanbul-reporter": "~2.1.0",
"karma-jasmine": "~2.0.1",
"karma-jasmine-html-reporter": "~1.4.2",
"protractor": "~5.4.2",
"ts-node": "~8.3.0",
"tslint": "~5.20.1",
"typescript": "~3.5.3",
"webdriver-manager": "12.0.6"
}
}
Dockerfile:
# Step 1: Build the app in image 'builder'
FROM node:10.23.0 AS builder
WORKDIR /usr/src/app
COPY package.json ./
RUN npm install
COPY . .
RUN npm run build
# Step 2: Use build output from 'builder'
FROM nginx:1.13
COPY --from=builder /usr/src/app/dist/my-project /usr/share/nginx/html
COPY --from=builder /usr/src/app/nginx/nginx.conf /etc/nginx/nginx.conf
当我 运行 [npm 运行 build] 命令时,它工作正常并创建了 dist 文件夹。但是当我 运行 使用 Dockerfile 执行相同的命令时,它失败并出现以下错误。
PS D:\projects\myproject> docker build -t myproject/ui .
[+] Building 242.5s (12/14)
=> [internal] load build definition from Dockerfile 0.6s
=> => transferring dockerfile: 32B 0.0s
=> [internal] load .dockerignore 0.8s
=> => transferring context: 34B 0.0s
=> [internal] load metadata for docker.io/library/nginx:1.13 5.5s
=> [internal] load metadata for docker.io/library/node:10.23.0 3.9s
=> [builder 1/6] FROM docker.io/library/node:10.23.0@sha256:57e6dc91af813f8d1c7e05d60871eca8cba67b1e120c1ae7192315114cf68de2 0.0s
=> [internal] load build context 0.9s
=> => transferring context: 102.96kB 0.5s
=> CACHED [stage-1 1/3] FROM docker.io/library/nginx:1.13@sha256:b1d09e9718890e6ebbbd2bc319ef1611559e30ce1b6f56b2e3b479d9da51dc35 0.0s
=> CACHED [builder 2/6] WORKDIR /usr/src/app 0.0s
=> CACHED [builder 3/6] COPY package.json ./ 0.0s
=> [builder 4/6] RUN npm install 165.5s
=> [builder 5/6] COPY . . 7.2s
=> ERROR [builder 6/6] RUN npm run build 61.5s
------
> [builder 6/6] RUN npm run build:
#12 8.157
#12 8.157 > my-project@1.7.0 build /usr/src/app
#12 8.157 > ng build configuration --production
#12 8.157
#12 60.40
#12 60.40 ERROR in app/modules/cable/cable.module.ts:59:57 - error TS2307: Cannot find module '../../components/cable/folder1/folder2/dialogs/changes-dialog/details-wizard/add-packages/new-package-definition/package-selection/package-selection.component'.
#12 60.40
#12 60.40 59 import {PackageSelectionComponent } from '../../components/cable/folder1/folder2/dialogs/changes-dialog/details-wizard/add-packages/new-package-definition/package-selection/package-selection.component ';
#12 60.40 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#14 74.16 ERROR in app/modules/cable/cable.module.ts(129,5): Error during template compile of 'CableModule'
#14 74.16
Could not
resolve ../../components/cable/folder1/folder2/dialogs/changes-dialog/details-wizard
/add-packages/new-package-definition/package-selection/package-selection.component relative to [object Object]..
似乎是由于docker引擎版本问题导致的错误。我使用的是最新版本并切换到旧版本 18.03.1-ce-win65,错误已修复。