1.自定義一個npm腳本
- 1.新建一個項目(在任何路徑都可以);
- 2.使用`npm init -y`初始化項目
- 3.新建一個index.js文件,在文件的第一行添加 `#!/usr/bin/env node`
- 4.在package文件中添加一個bin字段,bin字段是一個鍵值對,鍵名是生成的.cmd文件的名字,值是執行這個命名所要執行的腳本.
`"bin":{"lcopy":"./index.js"}`
- 5.打開終端進入當前目錄的根路徑,執行`npm link`node會自動去全局路徑創建cmd文


- 6.定義一個文件拷貝的copy方法
```
//copy.js文件,暴露一個copy方法
const fs = require('fs');
module.exports=function (src,dist,callback){
fs.readFile(src,(err,data)=>{
if(err){
return callback(err);
}
fs.writeFile(dist,data,err=>{
return callback(err);
})
callback(null);
})
};
```
- 7.在index.js中加載copy.js方法
```
#!/usr/bin/env node
const copy = require('./copy');
const argvs = process.argv().slice(2);
copy(argvs[0],argvs[1],err=>{
if(err){
console.log("復制文件失敗了");
}else{
console.log("復制文件成功");
}
});
console.log("copy()復制被執行了");
```
- 8.測試


- 9.將自定義命令發布到npm上
+ 首先驗證一下package.json中的name是否被占用
+ 去npm.js.com或者通過npm adduser注冊一個賬戶
npm login 登陸


> 注意要使用官方的鏡像源,我這里使用了淘寶的鏡像源,切換回官方鏡像源.



- 10npm publish 發布



- 11 npm version patch 更新



- 12重新發布

查看更新

- 13 下載安裝


- 14npm unpublish 刪除