npm install
npm install 模块安装机制简介
关于 npm install 模块安装机制的简介 我认为阮一峰老师已经说的很详细了。在这里我就不去复制他人的博客了。
在这里我之补充以下一点:npm install 如何知道你需要安装哪些依赖?
其实,需要安装的依赖早已在名为 package.json
的配置文件中写好,就拿上一博客中建立的项目模板来举例:
File: package.json
{
"name": "my-first-app",
"description": "A Vue.js project",
"version": "1.0.0",
"author": "ultravires <x555666777@qq.com>",
"license": "MIT",
"private": true,
"scripts": {
"dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot",
"build": "cross-env NODE_ENV=production webpack --progress --hide-modules"
},
"dependencies": {
"vue": "^2.5.11"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
],
"devDependencies": {
"babel-core": "^6.26.0",
"babel-loader": "^7.1.2",
"babel-preset-env": "^1.6.0",
"babel-preset-stage-3": "^6.24.1",
"cross-env": "^5.0.5",
"css-loader": "^0.28.7",
"file-loader": "^1.1.4",
"vue-loader": "^13.0.5",
"vue-template-compiler": "^2.4.4",
"webpack": "^3.6.0",
"webpack-dev-server": "^2.9.1"
}
}
使用 npm install
命令如果省略后面的 <package-name>
,那么它会去 package.json
配置文件下寻找 devDependencies
和 dependencies
配置,并安装其所有依赖。
那么 devDenpendencies
和 denpencies
二者究竟有何区别呢?
devDependencies
:是开发环境依赖。它用来配置在开发环境中所需要的依赖包的列表。如 webpack
就配置在其中,是因为 webpack
工具只会在开发环境中需要它来打包静态资源文件。而生产环境中则不需要它,因为这里缺少它,系统并不会报错。生产环境需要的只是其打包好的文件而已,而这个打包工具已经不再需要。
dependencies
:是生产环境依赖。在生产环境中所必须拥有的依赖都会放在此处配置。在 vue 项目中,如果没有 vue 这个依赖,项目运行就会报错。
那么,前面说单独的使用 npm install
默认安装的是全部依赖,那么如何只安装生产环境所需要的依赖呢?
npm install --produnction # 只安装 dependencies 而不安装 devDependencies
有的时候我们第一次安装依赖的时候并不会去一个一个的打开 package.json
文件去配置,这时候就可以使用另一种方式去将你想要安装的依赖写入到 devDenpencies
和 dependencies
对象中去。
npm install <package-name --save-dev> # into devDenpendencies
npm install <package-name --save> # into dependencies
使用上面命令的前提是你的项目中已经存在 package.json
配置文件。
npm run
"scripts": {
"dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot",
"build": "cross-env NODE_ENV=production webpack --progress --hide-modules"
},
npm install dev
和 npm install build
就是使用的这里的 scripts
对象。