刚刚从npm 3更新到5,以使用此功能。
例如,我想稳定的主要包是bootstrap
-我想暂时阻止它在bootstrap@4.0.0-alpha.6的版本,但是npm install
找到4.0.0-beta.28。
如果Inpmupdate
任何包,package-lock.json都将得到更新。
这是我的bootstrap的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",
不好。npm再次发现bootstrap beta和package-lock.json没有任何作用,实际上它是根据npm install
所做的重写的。这与您在dev中希望的行为是一致的,但没有告诉我如何使用lockfile来稳定包。
(env) jluc@trynpmlock$ npm list 2>/dev/null | grep bootstrap
├── bootstrap@4.0.0-beta.2
├─┬ bootstrap-vue@0.16.1
│ ├── bootstrap@4.0.0-beta.2 deduped
(env) jluc@trynpmlock$ 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: "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.0.0-beta.2.tgz",
package-lock.json: "bootstrap-vue": {
package-lock.json: "resolved": "https://registry.npmjs.org/bootstrap-vue/-/bootstrap-vue-0.16.1.tgz",
package-lock.json: "bootstrap": "4.0.0-beta.2",
>
如果我删除了package.json,并且只有一个包含package-lock.json的目录,那么npm install
只安装了很少的内容,给我留下了一个截断的package-lock.json
npm安装有一个--no-package-lock
选项,但这会阻止更新package-lock.json。
基本上,我如何告诉npm从package.json安装所有东西,但尊重package-lock.json中的锁?我使用的命令与npm install
不同吗?这是因为npm install的doc在包安装的上下文中引用了锁,但是锁在整个安装package.json时不适用吗?
是的,我知道我可以指定“bootstrap”:“4.0.0-alpha.6”
,减去^
,以手动锁定版本。
我的环境:
(env) jluc@py$ npm -v
5.5.1
您需要使用npm ci
命令从package-lock.json
进行安装。
参见:https://blog.npmjs.org/post/171556855892/Inductioned-npm-ci-for-faster-more-reliable
我错过了什么?如何让npm真正尊重我的锁文件?
在我的Gradle脚本中,我使用了一些库依赖项,比如 我现在想在应用程序中显示哪个版本的acutally是使用的。最简单的方法是使用保存版本信息。但是我怎么才能知道gradle下载的是哪一个版本。有没有办法在中确定这一点,或者我必须像这里描述的那样从路径中提取它?
npm@5已经发布,它有一个新的功能文件(在之后),这让我很困惑。我想知道,这个文件有什么效果?
我希望使用在Mac上安装Java。使用命令可以很好地工作。这将安装最新的稳定版本,当前为-。但是,如何安装特定的版本,例如。
问题内容: 我想用StackExchange.Redis做一个基本的观察。如果在交易过程中更改了密钥,它将失败。 StackExchange.Redis将其很好地抽象为“ Condition” api,它支持“等于”和“存在”的概念。 真的很好,但是我想做些“不变”的事情。我可能会遗漏一些东西,但是在这一点上我尚不清楚。 是否可以做类似的事情: 甚至可能是更好的版本(可以做相同的事情): 目前,我