zoukankan      html  css  js  c++  java
  • 利用npm上传插件

    前言

      有时候工作需要写一些特定的方法,或者插件来解决相关的问题,例如引入其他人的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

  • 相关阅读:
    asp.net 连接 Access 的几种方法
    asp.net 连接 oracle10g 数据库
    Entity Framework实例
    LINQ链接数据库出错(There is already an open DataReader associated with this Command which must be closed first )
    Linq入门实例
    Nibatis实例(2)
    Log4net实例
    图片提交表单方法
    Nibatis实例(1)
    爱情是不离不弃吗?
  • 原文地址:https://www.cnblogs.com/zxd66666/p/13516779.html
Copyright © 2011-2022 走看看