码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2016-11-08 01:53:00      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:文件拷贝   ons   初始化   更新   require   命名   创建   argv   port   

## 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 删除





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

标签:文件拷贝   ons   初始化   更新   require   命名   创建   argv   port   

原文地址:http://www.cnblogs.com/itlyh/p/6041108.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!