什么是NPM
NPM(node package manager),通常称为node包管理器。顾名思义,它的主要功能就是管理node包,包括:安装、卸载、更新、查看、搜索、发布等。
npm的背后,是基于couchdb的一个数据库,详细记录了每个包的信息,包括作者、版本、依赖、授权信息等。它的一个很重要的作用就是:将开发者从繁琐的包管理工作(版本、依赖等)中解放出来,更加专注于功能的开发。
NPM安装与卸载
本地安装npm install pkg
全局安装npm install -g pkg
卸载包npm uninstall pkg
初始化npm目录npm init
安装到文件目录(必须)npn install --save pkg
安装到文件目录(手动)npn install --save-dev pkg
如果报Error: EACCES, open '/Users/xxx/xxx.lock错误。先执行:sudo chown -R $(whoami) $HOME/.npm;
如果使用npm安装插件太慢(被墙),可执行 npm install -g cnpm --registry=https://registry.npm.taobao.org,先安装cnpm, 之后再安装插件时用cnpm安装cnpm install
npm scripts实例
使用npm scripts可以执行脚本,通过package.json中的scripts中添加添加命令就可以在npm run XXX来执行(npm test & npm start为自带,不需要run)
{
"scripts": {
"css:scss": "app=node-sass npm run check; node-sass --output-style compressed -o dist/css src/scss",
"css:autoprefixer": "app=postcss-cli npm run check; app=autoprefixer npm run check; postcss -u autoprefixer -r dist/css/*",
"css:compress": "app=csso npm run check; csso in.css --output out.css",
"css:less": "app=less npm run check; lessc --clean-css styles.less styles.min.css",
"js:webpack": "app=webpack npm run check; webpack",
"js:webpack:uncompress": "app=webpack npm run check; uglify=0 webpack",
"js:lint": "app=eslint npm run check; && eslint src/js",
"js:uglify": "app=uglifyjs npm run check; mkdir -p dist/js && uglifyjs src/js/*.js -m -o dist/js/app.js",
"image:imagemin": "app=imagemin-cli npm run check; imagemin src/images dist/images -p",
"server": "app=browser-sync npm run check; browser-sync start --server --files 'dist/css/*.css, dist/js/*.js'",
"watch": "app=onchange npm run check; onchange 'src/js/*.js' -- npm run build:js",
"watch:webpack": "onchange 'public/src/js/**/!(bundle.js)' -- npm run webpack:js",
"watch:all": "app=parallelshell npm run check; parallelshell 'npm run css:autoprefixer' 'npm run js:init' ",
"check": "[ -z \"$(app=$app node -p 'try{url=process.env.app+\"/package.json\"; require(url).version}catch(e){exports=\"\"}')\" ] && npm i -D $app || echo \"already installed $app\"; "
}
}