相关疑难解决方法(0)

npm-shrinkwrap.json和package-lock.json有什么区别?

随着npm @ 5发布,package-lock.json除非npm-shrinkwrap.json已经存在,否则它现在将写入.

我在全球范围内安装了npm @ 5:

npm install npm@5 -g
Run Code Online (Sandbox Code Playgroud)

现在,如果npm-shrinkwrap.json在以下期间找到a :

npm install
Run Code Online (Sandbox Code Playgroud)

将打印一条警告:

npm WARN read-shrinkwrap This version of npm
is compatible with lockfileVersion@1,
but npm-shrinkwrap.json was generated for lockfileVersion@0.
I'll try to do my best with it!
Run Code Online (Sandbox Code Playgroud)

所以我的外卖是我应该用the替换收缩膜package-lock.json.

然而,为什么会有新的格式呢?那可以package-lock.json做什么npm-shrinkwrap.json不可以?

npm npm-shrinkwrap package-lock.json

131
推荐指数
4
解决办法
4万
查看次数

npm - 如何实际使用package-lock.json进行基于锁定版本的安装?

刚刚从3点到5点更新,以使用此功能.

对不起,我一定错过了一些非常明显的东西,但是如何在安装时让npm尊重package-lock.json文件中的固定版本?

假设我有package.json一些过时的套餐.做一个npm install会吸引新的东西,打破我的应用程序.

例如,我想要稳定的主要包是bootstrap- 我想暂时bootstrap@4.0.0-alpha.6上阻止它的版本,但是npm install找到4.0.0-beta.28.

如果我有npm update任何包,package-lock.json会更新.

我们去我的开发目录.

这是我的boot.rap的package.json条目:

"bootstrap": "^4.0.0-alpha.6"

这就是我对已安装的软件包和元数据的看法:

$ npm list 2>/dev/null | grep bootstrap
??? bootstrap@4.0.0-alpha.6
??? bootstrap-vue@0.16.1
? ??? bootstrap@4.0.0-alpha.6 deduped


(env) jluc@py$ grep bootstrap package.json package-lock.json
package.json:    "bootstrap": "^4.0.0-alpha.6",
package.json:    "bootstrap-vue": "^0.16.1",
package-lock.json:    "bootstrap": {
package-lock.json:      "version": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.0.0-alpha.6.tgz",
package-lock.json:    "bootstrap-vue": {
package-lock.json:      "version": "https://registry.npmjs.org/bootstrap-vue/-/bootstrap-vue-0.16.1.tgz",
package-lock.json:        "bootstrap": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.0.0-alpha.6.tgz",
Run Code Online (Sandbox Code Playgroud)

看起来不错.Lock是bootstrap-4.0.0-alpha.6.

但我如何使用实际使用 …

npm

27
推荐指数
2
解决办法
8654
查看次数

将npm的"package-lock.json"置于版本控制之下有什么意义?

将npm package-lock.json置于版本控制之下有什么意义?根据我的经验,这个文件源控制引起了比效率提升更多的麻烦和混乱.

拥有package-lock.json源代码控制下使一个大难题每个人谁添加/删除一个开发者/修改的任何节点模块时需要解决冲突的分支之间.特别是在复杂/大型应用程序上工作,其中package-lock.json可以长达数万行.即使只是吹掉node_modules并运行一个新的,npm install也会在package-lock中产生剧烈的变化.

关于包锁还有其他几个SO问题:

和一个关于包锁的大量对话的GitHub问题:

这让我觉得仍有广泛的不确定因素需要消除.

根据文件

package-lock.json 为npm修改node_modules树或package.json的任何操作自动生成.

你为什么要把一个自动生成的文件放在源代码管理下呢?

上面的GitHub问题详细说明了一些人为了应对与package-lock.json的混淆,如何将npm install脚本更改为rm -f package-lock.json && npm install,这也感觉不正确.

似乎package-lock.json正在努力成为节点模块依赖关系的确切版本的真实来源,但这不正是package.json的功能吗?什么时候解决这个文件中的合并冲突的难以忍受的痛苦开始得到回报?

version-control npm package.json package-lock.json

22
推荐指数
3
解决办法
6856
查看次数

npm5相当于yarn的--pure-lockfile标志?

我正在寻找一个相当于纱线的--pure-lockfile旗帜.

在CI中安装依赖项时,此标志非常有用,当您希望它读取锁定文件但不修改它时.

npm v5有同等效力吗?

npm package-lock.json

15
推荐指数
1
解决办法
2274
查看次数

如何将node_modules与实际的package.json同步

例如,我已经使用git切换分支,并希望将node_modules与当前的package.json同步.我怎么做?

node.js npm

13
推荐指数
1
解决办法
4017
查看次数

如何让“pnpm install”完全按照 pnpm-lock 文件的规格安装所有内容?

如果您将 Github 项目连接到 Cloudflare Pages 或 Vercel 等产品,则提交到远程存储库会触发新构建。这些构建将运行适当的安装和构建命令。

我已经几个月没有更新网站了。但是所使用的依赖项发生了重大变化,这让我非常头痛地尝试逐一检查并解决出现的每个问题。

我正在使用pnpm,我是否可以pnpm install查看现有的项目pnpm-lock.yaml,以便最终构建一个与 6 个月前的构建完全相同的项目?

我只想编辑网站上的一些文本,而不必进行所有这些更新。package.json我尝试通过删除实例来“冻结”所有依赖项和开发依赖项的版本^,以匹配我在锁定文件中看到的内容,但这不起作用。

dependencies build dependency-management npm pnpm

8
推荐指数
1
解决办法
4万
查看次数

如何 npm 更新 package-lock.json 中的依赖项版本?

正如标题所示,但是:

  • 如果可能的话,我不想在 package-lock.json 中手动重写版本字符串,
  • 我尝试了以下操作:如何将 package.json 中的每个依赖项更新到最新版本?但当然正如预期的那样,它只更新了 package.json 文件,
  • 我查看了文档:package-lock.json 文档package-locks 解释文档
  • 正如这个问题中所写,npm v5.1.0中的npm安装行为发生了变化,如果我是正确的,这意味着如果我的npm版本高于5.1.0,我的应用程序将(默认情况下)始终从npm安装package.json,而不是 package-lock.json。但是,我的 package-lock.json 中仍然列出了一个存在漏洞的依赖项,并且我的 github 对此发出了强烈警告。

如何最好地解决这个问题?如果我无论如何都从 package.json 安装,那么删除 package-lock.json 是一个好习惯吗?我应该保持更新吗?如果我想改用锁该怎么办?

我以前从未做过这样的事情,所以我什至不确定如果我只是重写 json 中的版本字符串,它会起作用还是会破坏 npm 安装。

有没有一种安全/专业的方法来更改 package-lock.json,并通过 npm 保持更新?

node.js npm npm-update

7
推荐指数
1
解决办法
1万
查看次数

为什么删除 package-lock.json 会破坏构建,但运行“npm install”而不删除它却不会?

我有一个项目,我从文件中删除了一些不再需要的库package.json,remove node_modules,run npm install,一切都继续按预期工作。

不幸的是,如果我在删除后package-lock.json按照上述相同的步骤操作,我的构建会突然中断。生成了一个新的package-lock.json,但我现在收到了来自某些依赖项的数百个弃用警告,即使项目继续构建这些相同的依赖项也会在意外的地方中断。

如果我恢复到之前的package-lock.json状态并再次运行相同的步骤(remove node_modules、run npm install),警告将再次消失,并且构建再次处于安全状态。

我的理解是,package-lock.json每次我们运行npm install最新的软件包版本时,都会更新,并遵守插入符^和波浪号~限制。如果我们有现有package-lock.json安装和全新安装,此更新是否有所不同?

即使子依赖项之间存在某种冲突,我仍然很困惑为什么更新 a package-lock.jsonwithnpm install效果很好,但npm install在删除该文件后运行会创建一个新的package-lock.json中断文件。经过多次尝试,这种情况始终发生。

node.js npm package.json

7
推荐指数
1
解决办法
6740
查看次数

使用“ npm ci”代替“ npm install”进行确定性的项目设置

Given a project where the package-lock.json is managed in source control with the goal that all developers on the team get exactly the same dependencies.

From the documentation of npm I think developers should use npm ci to set up their development environment and probably also later when dependencies are updated.

However the instructions I see in typical npm projects is still to use npm install.

Is there a reason developers should use npm install instead of npm ci …

javascript npm npm-ci

5
推荐指数
1
解决办法
1031
查看次数

为什么在使用 npm install 时,package-lock.json 会导致 docker 容器构建失败?

网上有很多人用不同的方式问同样的问题,但没有明确的答案。任何人都可以理解到足以解释为什么docker buildpackage-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)

node.js npm docker package-lock.json

5
推荐指数
1
解决办法
3183
查看次数

npm install后重写package-lock.json

我当时正在做一个反应项目
我把它克隆到了一台新机器上。
一旦我运行命令npm installpackage-lock.json文件就被完全重写。

  • 这是一个问题吗?
  • 我该如何处理?

node.js npm package.json package-lock.json

5
推荐指数
1
解决办法
5691
查看次数

有关依赖项的最佳实践

保存 package.json 依赖项时的最佳做法是什么?

例如,我看到很多依赖项不是固定的,例如:

  "tslint": "~5.11.0"
Run Code Online (Sandbox Code Playgroud)

我希望有固定的依赖项,以便将来新开发人员加入团队时不会改变。

我对 package-lock.json 和 shrinkwrap 知之甚少,但我不确定这方面的“最佳实践”。在这种情况下是一个 Angular 应用程序,但它可以是一切。例如,将 package-lock.json 放在 repo 上会导致过去出现一些问题(我知道!推送它是最佳实践!)

有什么想法吗?

node.js npm semantic-versioning package.json

3
推荐指数
1
解决办法
567
查看次数

无法在这个项目中找到 expo - 你运行过 yarn / npm install 了吗?

我无法执行expo start命令。

错误信息:

PS C:\Users\Jacky Goyal\OneDrive\Desktop\rn1\my-project> expo start
Starting project at C:\Users\Jacky Goyal\OneDrive\Desktop\rn1\my-project

Unable to find expo in this project - have you run yarn / npm install yet?
    ?? action (C:\Users\Jacky Goyal\AppData\Roaming\npm\node_modules\expo-cli\src\commands\start.ts:34:11)
    ?? C:\Users\Jacky Goyal\AppData\Roaming\npm\node_modules\expo-cli\src\commands\start.ts:135:22
    ?? expo start (C:\Users\Jacky Goyal\AppData\Roaming\npm\node_modules\expo-cli\src\exp.ts:350:7)
PS C:\Users\Jacky Goyal\OneDrive\Desktop\rn1\my-project> npm install
added 28 packages, removed 46 packages, changed 34 packages, and audited 653 packages in 8s
17 packages are looking for funding
  run `npm fund` for details
7 low severity vulnerabilities
Some issues …
Run Code Online (Sandbox Code Playgroud)

npm expo

0
推荐指数
6
解决办法
1万
查看次数