我正在尝试为新开发人员在他们的本地开发环境中安装我们的代码库整理文档。我想给他们以下命令:
“npm ci”几乎完全符合我的要求,但似乎没有安装 devDependencies。“npm install”确实会安装 devDependencies,但它有时会修改 package-lock.json。
我可以想象一些像“npm install && git checkout package-lock.json”这样的问题,但我觉得必须有一种更惯用的方式来表达“给我一个干净安装这个项目的开发依赖项?”
网上有很多人用不同的方式问同样的问题,但没有明确的答案。任何人都可以理解到足以解释为什么docker build当package-lock.json应用程序中存在文件时会失败,而当文件不存在时会成功运行吗?貌似跟npm有关,但是不清楚。
每个人都说删除package-lock.json,但它存在是有原因的。
注意: npm install在我的本地机器上工作正常,只是在 docker 容器中失败。
如果我有这个 Dockerfile:
# First Stage: Builder
FROM node:13.12.0-alpine AS build
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
Run Code Online (Sandbox Code Playgroud)
并运行这个:
docker build -t container-tag ./
Run Code Online (Sandbox Code Playgroud)
我明白了:
npm WARN tar ENOENT: no such file or directory, open '/app/node_modules/.staging/eventsource-c2615740/example/index.html'
npm WARN tar ENOENT: no such file or directory, open '/app/node_modules/.staging/eventsource-c2615740/example/sse-client.js'
npm WARN tar ENOENT: no such file or directory, open …Run Code Online (Sandbox Code Playgroud)