首页 > 代码库 > 自定义npm命令行工具,并发布到www.npmjs.org

自定义npm命令行工具,并发布到www.npmjs.org

## 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 linknode会自动去全局路径创建cmd文
    技术分享
    • 6.定义一个文件拷贝的copy方法
  1. //copy.js文件,暴露一个copy方法
  2. const fs = require(‘fs‘);
  3. module.exports=function (src,dist,callback){
  4. fs.readFile(src,(err,data)=>{
  5. if(err){
  6. return callback(err);
  7. }
  8. fs.writeFile(dist,data,err=>{
  9. return callback(err);
  10. })
  11. callback(null);
  12. })
  13. };
  • 7.在index.js中加载copy.js方法
  1. #!/usr/bin/env node
  2. const copy = require(‘./copy‘);
  3. const argvs = process.argv().slice(2);
  4. copy(argvs[0],argvs[1],err=>{
  5. if(err){
  6. console.log("复制文件失败了");
  7. }else{
  8. console.log("复制文件成功");
  9. }
  10. });
  11. 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 删除



来自为知笔记(Wiz)


自定义npm命令行工具,并发布到www.npmjs.org