首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在没有node_modules的码头上运行角项目

在没有node_modules的码头上运行角项目
EN

Stack Overflow用户
提问于 2022-03-18 07:43:58
回答 1查看 490关注 0票数 0

我正试着在Docker上运行我的角度应用程序。问题是,当我从项目中删除node_modules文件夹时,出现了一个错误:An unhandled exception occurred: Cannot find module '@angular-devkit/build-angular/package.json'。我可以在本地运行项目来创建node_module,然后成功地在docker中运行。

我的Dockerfile-angular文件:

代码语言:javascript
运行
复制
FROM node:12.14.0

WORKDIR /app

COPY ./angular_app/package.json /app/package.json

RUN npm install -g @angular/cli@10.1.7
RUN npm install

ENTRYPOINT ["ng","serve","--host","0.0.0.0","--disableHostCheck"]

我的package.json

代码语言:javascript
运行
复制
{
  "name": "fundacja",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve --host 0.0.0.0",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "~9.1.9",
    "@angular/common": "~9.1.9",
    "@angular/compiler": "~9.1.9",
    "@angular/core": "~9.1.9",
    "@angular/forms": "~9.1.9",
    "@angular/platform-browser": "~9.1.9",
    "@angular/platform-browser-dynamic": "~9.1.9",
    "@angular/router": "~9.1.9",
    "@angular/youtube-player": "^11.0.3",
    "angular-countdown-timer": "0.0.1",
    "angular-oauth2-oidc": "^10.0.3",
    "bootstrap-cookie-alert": "^1.2.1",
    "hammerjs": "^2.0.8",
    "jwt-decode": "^3.1.2",
    "ng2-cookies": "^1.0.12",
    "ng2-date-countdown": "^1.1.3",
    "ng2-file-upload": "^1.4.0",
    "ngx-cookie-service": "^11.0.2",
    "ngx-countdown": "^11.0.1",
    "ngx-gallery-9": "^1.0.6",
    "ngx-image-gallery": "^2.0.5",
    "rxjs": "~6.5.4",
    "rxjs-compat": "^6.6.2",
    "screenfull": "^3.3.0",
    "tslib": "^1.10.0",
    "zone.js": "~0.10.2"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "^0.901.13",
    "@angular/cli": "~9.1.7",
    "@angular/compiler-cli": "~9.1.9",
    "@types/jasmine": "~3.5.0",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "^12.11.1",
    "codelyzer": "^5.1.2",
    "jasmine-core": "~3.5.0",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~5.0.0",
    "karma-chrome-launcher": "~3.1.0",
    "karma-coverage-istanbul-reporter": "~2.1.0",
    "karma-jasmine": "~3.0.1",
    "karma-jasmine-html-reporter": "^1.4.2",
    "protractor": "~7.0.0",
    "ts-node": "~8.3.0",
    "tslint": "~6.1.0",
    "typescript": "~3.8.3"
  }
}

终端中的异常如下所示:

代码语言:javascript
运行
复制
frontend      | An unhandled exception occurred: Cannot find module '@angular-devkit/build-angular/package.json'
frontend      | Require stack:
frontend      | - /usr/local/lib/node_modules/@angular/cli/node_modules/@angular-devkit/architect/node/node-modules-architect-host.js
frontend      | - /usr/local/lib/node_modules/@angular/cli/node_modules/@angular-devkit/architect/node/index.js
frontend      | - /usr/local/lib/node_modules/@angular/cli/models/architect-command.js
frontend      | - /usr/local/lib/node_modules/@angular/cli/commands/serve-impl.js
frontend      | - /usr/local/lib/node_modules/@angular/cli/node_modules/@angular-devkit/schematics/tools/export-ref.js
frontend      | - /usr/local/lib/node_modules/@angular/cli/node_modules/@angular-devkit/schematics/tools/index.js
frontend      | - /usr/local/lib/node_modules/@angular/cli/utilities/json-schema.js
frontend      | - /usr/local/lib/node_modules/@angular/cli/models/command-runner.js
frontend      | - /usr/local/lib/node_modules/@angular/cli/lib/cli/index.js
frontend      | - /usr/local/lib/node_modules/@angular/cli/lib/init.js
frontend      | - /usr/local/lib/node_modules/@angular/cli/bin/ng
frontend      | See "/tmp/ng-cbsfRE/angular-errors.log" for further details.

我不知道为什么在没有node_modules的情况下在本地成功地编译了我的项目,但是在Docker中却没有。

我的ng v

代码语言:javascript
运行
复制
Angular CLI: 13.3.0
Node: 16.14.1
Package Manager: npm 8.5.0
OS: linux x64

Angular: 
... 

Package                      Version
------------------------------------------------------
@angular-devkit/architect    0.1303.0 (cli-only)
@angular-devkit/core         13.3.0 (cli-only)
@angular-devkit/schematics   13.3.0 (cli-only)
@schematics/angular          13.3.0 (cli-only)

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2022-03-18 10:21:10

在Docker文档中,有一种叫做.dockerignore的方法,您可以在这里找到要获取节点模块的内容。通常在容器中安装,然后告诉docker忽略某些模块,如节点模块。

https://docs.docker.com/engine/reference/builder/#dockerignore-file

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71523795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档