Rollup构建发布一个Vue组件

2019 年 7 月 13 日 前端黑板报

创建项目

本地创建一个目录&执行初始化命令:

   
   
     
  1. mkdir vue-component

  2. cd vue-component

  3. npm init

安装依赖:

   
   
     
  1. npm i rollup

  2. npm i rollup-plugin-commonjs

  3. npm i rollup-plugin-vue

  4. npm i vue-template-compiler

在项目目录下面创建 src 目录并添加 index.js 文件和 vue-component.vue

vue-component.vue:

   
   
     
  1. <template>

  2. <div>

  3. {{message}}

  4. </div>

  5. </template>

  6. <script>

  7. export default {

  8. name: 'vue-component',

  9. data() {

  10. return {

  11. message:'hello vue component & rollup!'

  12. }

  13. },

  14. }

  15. </script>

  16. <style lang="less" scoped>


  17. </style>

index.js:

   
   
     
  1. import VueComponent from "./vue-component.vue"


  2. export default {

  3. install(Vue,options){

  4. Vue.component("vue-component",VueComponent)

  5. }

  6. }

注:

  1. 这里注册的组件名字最好和项目名一致,以免别人或自己使用的时候混淆。

测试组件

   
   
     
  1. vue serve ./src/vue-component.vue

注意上面的命令需要安装:

   
   
     
  1. npm install -g @vue/cli-service-global

创建rollup.config.js文件:

   
   
     
  1. import vue from 'rollup-plugin-vue'

  2. import commonjs from 'rollup-plugin-commonjs';


  3. export default {

  4. input :"./src/index.js",

  5. output:{

  6. file:"./dist/index.cjs.js",

  7. format:"cjs",

  8. },

  9. // ...

  10. plugins: [

  11. // ...

  12. commonjs(),

  13. vue(/* options */),

  14. ],

  15. }

package.json添加到scripts:

   
   
     
  1. "build": "rollup -c"

并且把main的字段值改为:

   
   
     
  1. "main": "./dist/index.cjs.js"

构建

   
   
     
  1. npm run build

在项目目录会多一个dist文件夹,里面包含index.cjs.js文件。

发布组件

发布到https://npmjs.com:

   
   
     
  1. npm login

  2. npm publish

注:

  1. 确保有npmjs的账户,没有去注册一个

  2. 发布的项目名有可能被占用,修改后的项目名记得同步更改注册的组件名


点击原文跳转github,记得点星哦


目前10000+人已关注加入我们

       

       



登录查看更多
5

相关内容

Best of 2016:VUE 获评 App Store 2016 年十佳应用。 被全球超过 120 个国家和地区 App Store 首页推荐,获得中国区 App Store 7 月最佳新应用称号。
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
192+阅读 · 2020年6月29日
华为发布《自动驾驶网络解决方案白皮书》
专知会员服务
125+阅读 · 2020年5月22日
简明扼要!Python教程手册,206页pdf
专知会员服务
47+阅读 · 2020年3月24日
【文章|BERT三步使用NLP迁移学习】NLP Transfer Learning In 3 Steps
【电子书】Flutter实战305页PDF免费下载
专知会员服务
22+阅读 · 2019年11月7日
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
Github项目推荐 | Pytorch TVM 扩展
AI研习社
11+阅读 · 2019年5月5日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
去哪儿网开源DNS管理系统OpenDnsdb
运维帮
21+阅读 · 2019年1月22日
如何用GitLab本地私有化部署代码库?
Python程序员
9+阅读 · 2018年12月29日
Do RNN and LSTM have Long Memory?
Arxiv
19+阅读 · 2020年6月10日
Arxiv
11+阅读 · 2018年1月15日
VIP会员
相关资讯
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
Github项目推荐 | Pytorch TVM 扩展
AI研习社
11+阅读 · 2019年5月5日
支持多标签页的Windows终端:Fluent 终端
Python程序员
7+阅读 · 2019年4月15日
去哪儿网开源DNS管理系统OpenDnsdb
运维帮
21+阅读 · 2019年1月22日
如何用GitLab本地私有化部署代码库?
Python程序员
9+阅读 · 2018年12月29日
Top
微信扫码咨询专知VIP会员