问题
I would like to install 1.8.x version a package, and be able to later automatically update this dependency inside the >=1.8.0 <1.9.0 range.
I tried to run this command:
npm install example-package@~1.8 --save
Unfortunately it adds this record to my package.json
:
"example-package" : "^1.8.0"
But what I want is this:
"example-package" : "~1.8.0"
How is it possible to do it with npm install
, without manually edit the package.json
file?
回答1:
The semver prefix is defined by the save-prefix config. The default value is a caret (^
) which you can check by running the following npm config command:
npm config get save-prefix
Unfortunately, the npm install command has no option to specify this, so what you'll need to do is:
Set the
save-prefix
value to a tilde (~
) by running:npm config set save-prefix="~"
Install your package by running:
npm i example-package@1.8.0 --save
Note: The tilde (
~
) must not be included in the install command.Finally, set the
save-prefix
value back to it's default, i.e. a caret (^
) by running:npm config delete save-prefix
Note: You wouldn't do this last step if you wanted all future
npm install
's to use the tilde (~
) prefix instead of a caret (^
).
The above steps will add the following record in package.json
:
"example-package" : "~1.8.0"
Note the tilde ~
instead of the default caret ^
You can utilize the &&
operator to combine the aforementioned commands into a compound command. For instance:
npm config set save-prefix="~" && npm i example-package@1.8.0 --save && npm config delete save-prefix
来源:https://stackoverflow.com/questions/60864514/npm-install-ignores-tilde-in-version-number