当我在项目中运行"npm install"时,它经常修改package-lock.json,例如,如果我从另一台计算机(具有不同节点或npm版本)处理同一项目.
但与此同时,文档建议该文件应该添加到版本控制(在我的情况下为git):
https://docs.npmjs.com/files/package-lock.json
此文件旨在提交到源存储库,并用于各种目的:...
那么我应该在切换工作机器时或者在其他人的情况下来回提交npm所做的更改npm install吗?这将是一场噩梦.
目前我只是放弃了由npm对package-lock.json所做的任何更改,并且它一直正常工作.所以我不妨把它添加到.gitignore ......
我做错了吗?我应该用npm ci吗?我不会把我的电脑称为"CI",它只是一台开发机器,我为什么要在那里使用它?
基本上我和这位先生有同样的问题:
https://github.com/npm/npm/issues/18103#issuecomment-370401935
(遗憾的是,我无法在该问题上添加评论或根本无法创建新问题,npm repo已禁用问题)
我知道主要优点,package-lock.json我同意这一点.它不仅在最后一次安装中锁定下载的版本,而且还锁定了uri ...在大多数情况下,这是必要的,因为它可以复制最相似的项目.
但有一件事对我来说似乎很奇怪,它package.json具有声明依赖性的功能dependency: ^1.0.0,应该让npm在每个安装中下载该软件包的最新版本和兼容版本.
我正在一个我真正需要的项目.否则,每次我的依赖项发布补丁时,都需要进行新的提交更新,package.json只更改版本,因此我的管道也可以覆盖package-lock.json.
简而言之,似乎在package.json使用某个功能时......会package-lock.json阻止那个功能.
我错过了什么吗?
每当我启动我的nodejs项目时,它就会通过我给它的旧名称来引用它:
gpio-editor @ 0.0.0 start/home/pi/RPi-Computer-Power/RPi-Server
我不希望它再被称为gpio-editor,但我还没有找到一种方法来改变它的互联网.我是nodejs的新手,我最初没有制作这个项目.
如果有人知道怎么做,请告诉我.谢谢,尼尔
网上有很多人用不同的方式问同样的问题,但没有明确的答案。任何人都可以理解到足以解释为什么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) npm 5&nodejs 8引入了一个名为package-lock.json的文件,我想知道它是否需要版本化或在git中被忽略
node.js ×4
npm ×4
package.json ×2
docker ×1
git ×1
gitignore ×1
javascript ×1
package ×1
project ×1