我的npm有奇怪的行为
这是我的package.json
的一小部分 "devDependencies": {
....
"css-loader": "^0.23.1",
"del": "^2.2.1",
"gulp-autoprefixer": "^3.1.0",
"gulp-clean-css": "^2.0.10",
"gulp-concat": "^2.6.0",
"gulp-rename": "^1.2.2",
"gulp-replace": "^0.5.4",
....
}
当我运行npm i
时,一切都已安装。
之后我立即点击npm i gulp-clean-css@2.0.10
安装了相同的软件包,但是当我希望收到更新的软件包时,我会收到更多软件包。
知道为什么npm表现如此吗?
如果没有特定的npm i gulp-clean-css@2.0.10
,我的构建将被破坏并在特定安装后得到修复。
答案 0 :(得分:1)
这是因为您使用^字符在package.json中指定了软件包版本,这只限制了MAJOR版本号(x.x.x中的第一个数字)。见https://github.com/npm/node-semver#caret-ranges-123-025-004
当您运行特定的软件包安装命令时,您严格指定特定版本(不含^),这意味着它将获取该软件包版本完全。