前言
隨著前端工程的發(fā)展险领,npm
已然成為每個(gè)前端開發(fā)者的必備技能,然而大多數(shù)人對(duì)它的使用也只是停留在使用npm
安裝一些依賴包而已。作為全世界最大規(guī)模的包管理器,每周大約有30億次的下載量挺身,npm
的功能遠(yuǎn)不止安裝依賴這么簡(jiǎn)單,本文的目的就是介紹npm
更多的功能锌仅。
安裝
通過安裝NodeJS,就會(huì)連帶安裝墙贱。
使用
- 查看npm版本
$ npm -v
- 更新npm版本
$ npm install npm@latest -g
- 初始化與安裝依賴包
npm init (-y)
此指令用來安裝初始化一個(gè)package.json
文件热芹,-y表示生成一個(gè)默認(rèn)的文件,不需要一步一步的來惨撇。
{
"name": "vue-music",
"version": "1.0.0",
"description": "vue組件化開發(fā)音樂播放器",
"author": "author",
"private": true,
"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"start": "npm run dev",
"lint": "eslint --ext .js,.vue src",
"build": "node build/build.js"
},
"dependencies": {
"babel-runtime": "^6.26.0",
"fastclick": "^1.0.6",
"vue": "^2.5.2",
"vue-router": "^3.0.1"
},
"devDependencies": {
"autoprefixer": "^7.1.2",
"babel-core": "^6.22.1",
"babel-eslint": "^8.2.1",
"babel-helper-vue-jsx-merge-props": "^2.0.3",
"babel-loader": "^7.1.1",
"babel-plugin-syntax-jsx": "^6.18.0",
"babel-plugin-transform-runtime": "^6.22.0",
"babel-plugin-transform-vue-jsx": "^3.5.0",
"babel-polyfill": "^6.26.0",
"babel-preset-env": "^1.3.2",
"babel-preset-stage-2": "^6.22.0",
"chalk": "^2.0.1",
"copy-webpack-plugin": "^4.0.1",
"css-loader": "^0.28.0",
"eslint": "^4.15.0",
"eslint-config-standard": "^10.2.1",
"eslint-friendly-formatter": "^3.0.0",
"eslint-loader": "^1.7.1",
"eslint-plugin-import": "^2.7.0",
"eslint-plugin-node": "^5.2.0",
"eslint-plugin-promise": "^3.4.0",
"eslint-plugin-standard": "^3.0.1",
"eslint-plugin-vue": "^4.0.0",
"extract-text-webpack-plugin": "^3.0.0",
"file-loader": "^1.1.4",
"friendly-errors-webpack-plugin": "^1.6.1",
"html-webpack-plugin": "^2.30.1",
"node-notifier": "^5.1.2",
"optimize-css-assets-webpack-plugin": "^3.2.0",
"ora": "^1.2.0",
"portfinder": "^1.0.13",
"postcss-import": "^11.0.0",
"postcss-loader": "^2.0.8",
"postcss-url": "^7.2.1",
"rimraf": "^2.6.0",
"semver": "^5.3.0",
"shelljs": "^0.7.6",
"stylus": "^0.54.7",
"stylus-loader": "^3.0.2",
"uglifyjs-webpack-plugin": "^1.1.1",
"url-loader": "^0.5.8",
"vue-loader": "^13.3.0",
"vue-style-loader": "^3.0.1",
"vue-template-compiler": "^2.5.2",
"webpack": "^3.6.0",
"webpack-bundle-analyzer": "^2.9.0",
"webpack-dev-server": "^2.9.1",
"webpack-merge": "^4.1.0"
},
"engines": {
"node": ">= 6.0.0",
"npm": ">= 3.0.0"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
]
}
上面的代碼是一個(gè)vue-cli2.0生成的項(xiàng)目里的package.json
文件伊脓,此文件用來記錄項(xiàng)目的一些初始化信息和依賴包的信息。
通過npm install <package-name>
或者縮寫為npm -i <package-name>
來安裝依賴到package.json同級(jí)目錄node-modules
文件夾下魁衙。
一般我們項(xiàng)目中會(huì)有兩個(gè)依賴環(huán)境:
- 生產(chǎn)環(huán)境 devDependencies
- 開發(fā)環(huán)境 dependencies
使用npm install <package-name> --save
來安裝依賴包到開發(fā)環(huán)境 (dependencies)
使用npm install <package-name> --save-dev
來安裝依賴包到生產(chǎn)環(huán)境 (devDependencies) - 全局安裝
使用npm install <package-name> -g
將依賴安到全局使用报腔,比如vue-cli。
- npm查詢依賴包
npm list // 查看當(dāng)前目錄下已安裝的node包
npm search <package-name>// 檢驗(yàn)?zāi)硞€(gè)包名是否已存在
npm view <package-name> versions// 檢驗(yàn)?zāi)硞€(gè)包名全部版本信息
npm view <package-name> version// 檢驗(yàn)?zāi)硞€(gè)包名最新版本信息