zoukankan      html  css  js  c++  java
  • npm 插件发布和使用

    npm 发布步骤:

    参考:https://www.jianshu.com/p/9342c8d355a9

    1.创建项目,安装依赖

    vue init webpack-simple 项目名称 //创建插件项目
    npm install //安装依赖
    npm run dev // 启动项目

    2.编写插件:

    创建组件文件夹:src/lib/index.js 和 vue-totas-c.vue

    本地测试组件:

    main.js

    import Vue from 'vue'
    import App from './App.vue'
    
    import Toast from './lib/index.js'
    Vue.use(Toast);
    
    new Vue({
      el: '#app',
      render: h => h(App)
    })
    

    App.vue

    <template>
      <div id="app">
        <img src="./assets/logo.png">
        <h2>{{newMsg}}</h2>
        <button @click="showToast">show toast</button>
      </div>
    </template>
    
    <script>
    export default {
      name: 'app',
      data () {
        return {
          msg: 'Welcome to Your Vue.js App',
          newMsg: 'vue-toast-c Demo'
        }
      },
      methods: {
        showToast() {
            this.$toast({mes: this.msg});
        }
      }
    }
    </script>
    
    <style lang="scss">
    *{
      padding: 0;
      margin: 0;
    }
    #app {
      font-family: 'Avenir', Helvetica, Arial, sans-serif;
      text-align: center;
      color: #2c3e50;
      margin-top: 100px;
    }
    h2 {
      padding: 20px 0;
    }
    button{
      position: relative;
      color: #fff;
      background-color: #44cc8a;
      border: none;
       80%;
      margin: 0 auto;
      display: block;
      font-size: 16px;
      height: 40px;
      margin-top: 10px;
      border-radius: 3px;
      outline: none;
      overflow: hidden;
    
      &:after {
        content: "";
        display: block;
        position: absolute;
         100%;
        height: 100%;
        top: 0;
        left: 0;
        pointer-events: none;
        background-image: radial-gradient(circle, #fff 10%, transparent 10.01%);
        background-repeat: no-repeat;
        background-position: 50%;
        transform: scale(10, 10);
        opacity: 0;
        transition: transform .2s, opacity .5s;
      }
    
      &:active:after {
        transform: scale(0, 0);
        opacity: .4;
        transition: 0s;
      }
    
    }
    
    </style>

    安装依赖:npm install

    启动项目进行测试:npm run dev

    webpack.config.js

    module.exports = {
      entry: './src/main.js', // 打包发布入口
      output: {
        path: path.resolve(__dirname, './dist'),
        publicPath: '/dist/', 
        filename: 'vue-toast-c.js', // 打包生成的模块名
        library: 'vueToastC', // 你使用require时的模块名
        libraryTarget: 'umd', // 指定输出格式
        umdNamedDefine: true // 会对 UMD 的构建过程中的 AMD 模块进行命名。否则就使用匿名的 define
      }
    ……
    }

    打包:npm run build

    打包后,会在根目录下生成一个dist文件夹,里面包含vue-toast-c.jsvue-toast-c.js.map两个文件,说明打包成功。

    修改package.json

    修改根目录下的package.json文件,修改和添加以下内容

    {
      "private": false,//这里一定要改为 false
      "main": "dist/vue-toast-c.js",//默认 import 引入插件时,读取的文件
      "repository": {
        "type": "git",
        "url": "https://github.com/chenfangsheng/vue-toast-c"//这里为我自己插件存放github的地址
      }
    }

    发布插件到npm

    npm login // 登录
    npm publish // 发布
    

      

     

    插件发布基本总结:

    // 1.npm插件发布
    npm addUser  // 分别输入用户名、密码、邮箱
    npm publish  // 直接发布
    npm login    // 第一次发版本
    npm unpublish --force // 取消插件发布【谨慎使用】
    
    // 2.npm插件更新
    npm version patch  // 补丁【1.0.1】
    npm version minor  // 小改【1.1.0】
    npm version major  // 大改【2.0.0】
                       // 注意需要再一次执行:npm publish
    
    // 3.查看远程包版本信息
    npm view xxx versions
    // 4.npm单独更新某个包 npm update xxx // 5.npm更新至最新版 npm install -g npm

    常见的报错信息:

    (1)no_perms Private mode enable, only admin can publish this module
        这是因为镜像设置成淘宝镜像了,设置回来即可

    (2)npm publish failed put 500 unexpected status code 401
          一般是没有登录,重新登录一下 npm login 即可

    (3)npm ERR! you do not have permission to publish “your module name”. Are you logged in as the correct user?

        包名被占用,改个包名即可。最好在官网查一下是否有包名被占用,之后再重命名

    (4)you must verify your email before publishing a new package

          邮箱未验证,去官网验证一下邮箱

    npm登录时总是报错

    原因:使用了 taobao 的 registry(注册表) 地址造成登录出现如标题所示错误。

    解决办法:在控制台输入【npm config set registry https://registry.npmjs.org/】命令。

    npm发包的时候报错

    原因:包名被占用,改个包名即可。最好在官网查一下是否有包名被占用,之后再重命名

    解决办法:进入package.json,修改插件名

  • 相关阅读:
    paip.环境设置 mybatis ibatis cfg 环境设置
    paip。java 高级特性 类默认方法,匿名方法+多方法连续调用, 常量类型
    paip. java的 函数式编程 大法
    paip.函数方法回调机制跟java php python c++的实现
    paip.配置ef_unified_filter() failed ext_filter_module mod_ext_filter.so apache 错误解决
    paip. 解决java程序不能自动退出
    Paip.声明式编程以及DSL 总结
    paip. dsl 编程语言优点以及 常见的dsl
    paip.函数式编程方法概述以及总结
    paip.jdbc 连接自动释放的测试
  • 原文地址:https://www.cnblogs.com/linzhifen5/p/12455830.html
Copyright © 2011-2022 走看看