gpt4 book ai didi

angular - angular-cli 应用程序的 Dockerfile 返回 ng : command not found

转载 作者:行者123 更新时间:2023-12-02 18:22:34 25 4
gpt4 key购买 nike

我正在尝试在 docker 文件中运行我的 Angular 应用程序(使用 ng-cli 生成)。

这是我的 docker 文件:

FROM node:6.10.0

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app

COPY package.json /usr/src/app/
RUN npm install --dev && npm cache clean

COPY . /usr/src/app

CMD [ "ng", "serve" ]

然而,这会因命令而崩溃:

ng: command not found

这怎么可能? Angular CLI 列在我的 package.json 的开发依赖项中。

  "devDependencies": {
"@angular/cli": "1.4.4",
"@angular/compiler-cli": "^4.2.4",
"@angular/language-service": "^4.2.4",
"@types/jasmine": "~2.5.53",
"@types/jasminewd2": "~2.0.2",
"@types/node": "~6.0.60",
"codelyzer": "~3.2.0",
...

最佳答案

问题是在您的 $PATH 变量中找不到命令 ng。当您运行 npm install --dev 时,它将在您的项目范围内安装您的依赖项。

通过 package.json 中的 scripts 属性调用的命令将能够找到您的本地依赖项。

示例 package.json:

{
"name": "example-package",
"version": "1.0.0",
"description": "Example package that starts ng",
"scripts": {
"start": "ng serve"
},
"author": "",
"license": "ISC",
"devDependencies": {
...
}
}

docker 文件:

FROM node:6.10.0

RUN mkdir -p /usr/src/app WORKDIR /usr/src/app

COPY package.json /usr/src/app/ RUN npm install --dev && npm cache clean

COPY . /usr/src/app

CMD [ "npm", "start" ]

请注意,npm 仅支持少数开箱即用的脚本。如果你想运行任意脚本,你可以使用 npm run-script ... 命令。

...
"scripts" : {
"ng-serve": "ng serve"
}
...

通过调用运行脚本:npm run-script ng-serve

您可以在此处的 npm 文档中找到默认脚本的完整列表和更多信息:https://docs.npmjs.com/misc/scripts

关于angular - angular-cli 应用程序的 Dockerfile 返回 ng : command not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47111278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com