前言

  有时候工作需要写一些特定的方法,或者插件来解决相关的问题,例如引入其他人的UI组件库没有自己想要的动画,或相关的效果,这个时候我们往往会自己写方法,但为了方便其他人使用,比起上传到github,这个时候上传到npm显然更加方便管理。

  

第一步:下载nodeJS并注册npm账号

  运行必须建立在系统以及安装了nodejs的前提之下,下载地址:http://nodejs.cn/download/,然后需要在npm的官网注册一个账号,地址:https://www.npmjs.com/,注意国内注册成功之后会收到一封确认邮件,点击进去确认,但npm官网会有延迟,因此上面会一直出现提示你激活邮箱的文字,这个时候可以先不用管它的提示,但过了几个小时还是一直提示,此时可以换一个邮箱绑定来解决。

 

第二步:登录

  控制台输入:npm login,然后再依次输入账号密码邮箱;

  注意:如果此时报错code E409,那么输入 npm config set registry=http://registry.npmjs.org 把npm仓库从淘宝镜像库重新指向回npm。

 

第三步:创建需要上传的项目(插件)

  1. 进入文件之后 npm init 初始化文件;

  2. 填写相关信息:

    package name:   包的名称

    version:          版本号

    description:     包的描述

    entry point:      入口文件,默认是index.js

    test command:   测试命令,可以不填直接回车

    git repository:    提供git个人仓库,可以不填,直接回车

    keywords:     testplugin (项目的关键词,npm搜索关键词)

    author:            作者名称

    license: (ISC)     包遵循的开源协议,默认是ISC

    例如:

{
"name": "my-meteor2",
"version": "1.0.2",
"description": "测试案例,请勿下载",
"main": "index.js",
"bin": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/13632756286/meteor"
},
"keywords": [
"music",
"player",
"vue",
"calamus"
],
"author": "calamus",
"license": "MIT",
"bugs": {
"url": "https://github.com/13632756286/meteor"
},
"homepage": "https://github.com/13632756286/meteor",
"_from": "meteor"
}

  最后yes确认之后,会多出一个package.json文件,就是我们刚才填的项目信息。

 

第四步:创建index.js(就是我们刚刚指定的入口文件)

  利用 module.exports 或简写成 exports 进行导出方法或属性

exports.isValid = (s)=>{
  let arr = [];
  s = s.split('');
  for( var v of s){
    if(v === ' ') continue;
    else if(v === '(') arr.push(')');
    else if(v === '{') arr.push('}');
    else if(v === '[') arr.push(']');
    else if(arr.length === 0 || arr.pop() !== v) return false;
  }
  return arr.length === 0 ? true : false;
}

exports.speak = ()=> {
  return console.log('Hello World');
}

exports.name = "Rechard";

 

第五步:发布

  控制台输入:npm publish  发布至npm即可,我们可以在官网 https://www.npmjs.com/ 搜索,但是刚发布会有延迟,可能出现搜索不到的情况,建议直接在自己的包里面查看

 

 

 

  注意:每次发布新版本在version那边版本号都得叠加更新,例如"version": "1.0.0",下次就要改为"1.0.1"。

 

第六步:下载包

  在需要下载的项目中,或自己创建一个新的文件夹,然后npm init 初始化之后,在npm install 包名(例如我的my-meteor2)就可以下载了。

 

   最后只要require引入,我们就可以使用之前定义的方法了,是不是感觉逼格高了很多?O(∩_∩)O哈哈~

 

报错原因总结

  报E401--未登陆,重新npm login登陆即可。

  报E403

    npm ERR! you do not have permission to publish “your module name”. Are you logged in as the correct user? -- 包名已经被占用,建议先到官网 https://www.npmjs.com/ 搜索包名,如果包名没有被使用,再到package.json中修改name的包名即可。

    you must verify your email before publishing a new package -- 邮箱未验证,去官网验证一下邮箱。

  报E409--地址指向错误,npm config set registry=http://registry.npmjs.org 改回地址即可。

 

参考文章:

  https://www.jianshu.com/p/0fc09675d2e4

  https://www.cnblogs.com/calamus/p/8384318.html

  https://www.cnblogs.com/fayin/p/6831071.html

  https://juejin.cn/post/7088609251924377637

 

posted on 2020-08-17 11:54  Tom最好的朋友是Jerry  阅读(224)  评论(0编辑  收藏  举报