npm下载东西时–save 和–save-dev的区别
很多时候,开发会用到npm install ,比如写一个react的项目,有时候命令的需求是不一样的
我们可以实际操作一下
当然,前提是本地有node的环境,可以通过node -v
,npm -v
分别查看,有版本信息继续往下操作,如果没有,就去node官网下载下,推荐稳定版
先创建一个新的文件夹
mkdir test
cd test
创建好后,初始化下
npm init
文件下会有一个package.json文件,我们先下载react,react-dom看看
npm install react react-dom --save
你可以用这个cat package.json查看package.json文件直接在命令行中:
$ cat package.json
{
"name": "test-demo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"react": "^16.8.6",
"react-dom": "^16.8.6"
}
}
在上面的这个文件中,新加了"dependencies": { "react": "^16.8.6", "react-dom": "^16.8.6" }
,那么这是什么意思呢?是我们在开发中以及以后的产品上线后,这些包是正常运行的关键,如果你拿到别人项目,首先会npm install ,下载他有的一些依赖,然后有些依赖是在开发中使用,产品上线后就不用的东西,是不放在这个dependencies中的
我们可以下载下webpack这个包,用的命令是不同的
npm install webpack webpack-dev-server --save-dev
查看下文件:
$ cat package.json
{
"name": "test-demo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"react": "^16.8.6",
"react-dom": "^16.8.6"
},
"devDependencies": {
"webpack": "^4.33.0",
"webpack-dev-server": "^3.5.1"
}
}
文件是放在devDependencies中的,这些东西产品正式发布后可以删除到的,因为不在需要了,所以这俩命令的区别就是:
你项目上线后,仍然需要用的东西用–save;
不需要的一些包,只是在开发时借用环境什么的,可以直接用–save-dev