安装

  1. yarn global add rollup
  2. yarn add rollup-plugin-esbuild
  3. yarn add rollup-plugin-vue
  4. yarn add rollup-plugin-scss
  5. yarn add sass rollup-plugin-terser

配置

1. 创建 src/lib/index.ts

  1. export {default as Switch} from './Switch.vue';
  2. export {default as Button} from './Button.vue';
  3. export {default as Tabs} from './Tabs.vue';
  4. export {default as Tab} from './Tab.vue';
  5. export {default as Dialog} from './Dialog.vue';
  6. export {openDialog as openDialog} from './openDialog';

2. 创建 rollup.config.js

  1. // 请先安装 rollup-plugin-esbuild rollup-plugin-vue rollup-plugin-scss sass rollup-plugin-terser
  2. // 为了保证版本一致,请复制我的 package.json 到你的项目,并把 name 改成你的库名
  3. import esBuild from 'rollup-plugin-esbuild' // 将 ts 转为 js
  4. import vue from 'rollup-plugin-vue' // 将 vue 转为 js
  5. import scss from 'rollup-plugin-scss' // 将 scss 转为 css
  6. import dartSass from 'sass';
  7. import { terser } from "rollup-plugin-terser" // 丑化 js
  8. export default {
  9. input: 'src/lib/index.ts', // 输入目录
  10. output: {
  11. globals: { // 全局依赖、不打包
  12. vue: 'Vue'
  13. },
  14. name: 'Muji',
  15. file: 'dist/lib/muji.js', // 输出目录
  16. format: 'umd', // umd 格式
  17. plugins: [terser()] // 丑化 js
  18. },
  19. plugins: [
  20. vue({
  21. include: /\.vue$/,
  22. }),
  23. scss({ include: /\.scss$/, sass: dartSass }),
  24. esBuild({
  25. include: /\.[jt]s$/,
  26. minify: process.env.NODE_ENV === 'production',
  27. target: 'es2015'
  28. })
  29. ],
  30. }

使用

  • 运行 rollup -c

    上传到 npm

    1. 配置 package.json

    1. {
    2. "files": ["dist/lib/*"], // 上传文件
    3. "main": "dist/lib/muji.js", // 主文件
    4. }

    2. 使用官网源

    1. npm config get registry // 查看源
    2. npm config set registry https://registry.npmjs.org/ // 使用官方源
    3. // 淘宝源 https://registry.npm.taobao.org/

    3. 上传

    1. npm login
    2. npm publish
    3. npm logout // 退出登录