如何新建一个npm包
npm init 初始化npm,会创建一个pageage.json。包含npm包的相关信息。
touch README.md index.js .npmignore
//.npmignore用来隐藏上传文件
npm install --save xxx
//保存到本地,当别人安装的时候,会一起安装到本地
安装后会在pageage.json的dependencies中存在记录
npm install --save-dev xxx
//自己做开发测试的时候用到的,别人安装的时候,不会一起安装到本地
安装后会在pageage.json的devdependencies中存在记录
如何发布
npm login
//输入npm用户名和密码
npm publish //上传
如何去用
npm install alutier02 --save
例子
假如发布了一个包 名字叫sayhello
index.js只有一条语句
#!/user/bin/env node
//系统会默认使用node执行
console.log('hello')
pageage.json添加
"bin":{
"sayhello":"./index.js"
},
//输入sayhello之后,相当于执行index.js文件
安装该包以后,只要在命令行执行 sayhello
//输出 hello
"scripts": {
"start":"echo start....",
"build":"echo build",
"test": "echo \"Error: no test specified\" && exit 1"
},
//这里面的东西通过
//npm start 运行;npm test运行
//除了start 和 test之外其他的命令,需要npm run build运行
全局安装
npm install alutier02 --g
//可以全局使用
package.js中的script
npm <command>
"script": {
"test":"mkdir abc"
}
npm test 就创建一个文件夹abc
npm run <command>
对于不是以上命令的,需要 npm run <command>
run可以运行自定义命令。
//例子
"script": {
"test":"mkdir abc",
"mk2":"mkdir abc2",
"delete":"rm -r abc2"
}
npm run mk2 //创建文件夹mk2
npm run delete //删除文件夹mk2
npm实例
{
"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\"; "
}
}