xgqfrms™, xgqfrms® : xgqfrms's offical website of cnblogs! xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!

rollup.js & vue.js All In One

rollup.js & vue.js All In One

UMD

webpack / rollup

https://github.com/umdjs/umd

// UMD === amd + cjs + iife


browser

// IIFE , closure 闭包


UMD === amd + cjs + iife

amd – Asynchronous Module Definition, used with module loaders like RequireJS

cjs – CommonJS, suitable for Node and other bundlers (alias: commonjs)

es – Keep the bundle as an ES module file, suitable for other bundlers and inclusion as a <script type="module"> tag in modern browsers (alias: esm, module)

iife – A self-executing function, suitable for inclusion as a <script> tag. (If you want to create a bundle for your application, you probably want to use this.). "iife" stands for "immediately-invoked Function Expression"

umd – Universal Module Definition, works as amd, cjs and iife all in one

system – Native format of the SystemJS loader (alias: systemjs)

https://rollupjs.org/guide/en/#outputformat

vue

typescript

import vue from 'rollup-plugin-vue'
import typescript from 'rollup-plugin-typescript'

export default {
  input: 'src/MyComponent.vue',
  output: {
    format: 'esm',
    file: 'dist/MyComponent.js'
  },
  external: ['vue'],
  plugins: [
    typescript({
      tsconfig: false,
      experimentalDecorators: true,
      module: 'es2015'
    }),
    vue()
  ]
}

components library

import vue from 'rollup-plugin-vue'

export default [
  // ESM build to be used with webpack/rollup.
  {
    input: 'src/index.js',
    output: {
      format: 'esm',
      file: 'dist/library.esm.js'
    },
    plugins: [
      vue()
    ]
  },
  // SSR build.
  {
    input: 'src/index.js',
    output: {
      format: 'cjs',
      file: 'dist/library.ssr.js'
    },
    plugins: [
      vue({ template: { optimizeSSR: true } })
    ]
  },
  // Browser build.
  {
    input: 'src/wrapper.js',
    output: {
      format: 'iife',
      file: 'dist/library.js'
    },
    plugins: [
      vue()
    ]
  }
]

https://rollup-plugin-vue.vuejs.org/examples.html#typescript

https://rollup-plugin-vue.vuejs.org/options.html#options

import vuePlugin from 'rollup-plugin-vue'
 
export default {
  plugins: [
    vuePlugin(/* options */)
  ]
}

rollup plugins

$ npm i rollup-plugin-vue

rollup-plugin-vue

https://www.npmjs.com/package/rollup-plugin-vue

https://github.com/vuejs/rollup-plugin-vue

https://www.npmjs.com/package/rollup-plugin-typescript

https://www.npmjs.com/package/vue-sfc-rollup

https://github.com/ezekielchentnik/rollup-plugin-uglify-es

https://github.com/TrySound/rollup-plugin-uglify

rollup-plugin-terser

https://github.com/TrySound/rollup-plugin-terser

import { rollup } from "rollup";
import { terser } from "rollup-plugin-terser";

rollup({
  input: "main.js",
  plugins: [terser()],
});

rollup alias

https://github.com/rollup/plugins/tree/master/packages/alias#install


import alias from '@rollup/plugin-alias';

module.exports = {
  input: 'src/index.js',
  output: {
    dir: 'output',
    format: 'cjs'
  },
  plugins: [
    alias({
      entries: [
        { find: 'utils', replacement: '../../../utils' },
        { find: 'batman-1.0.0', replacement: './joker-1.5.0' }
      ]
    })
  ]
};

Rollup

https://cn.vuejs.org/v2/guide/installation.html#Rollup

const alias = require('rollup-plugin-alias')

rollup({
  // ...
  plugins: [
    alias({
      'vue': require.resolve('vue/dist/vue.esm.js')
    })
  ]
})

https://cn.vuejs.org/v2/guide/installation.html#Rollup-1

const replace = require('rollup-plugin-replace')

rollup({
  // ...
  plugins: [
    replace({
      'process.env.NODE_ENV': JSON.stringify('production')
    })
  ]
}).then(...)

vite

Provides Vue 3 Single File Components support.

$ npm i -D @vitejs/plugin-vue

Note: as of vue 3.2.13+ and @vitejs/plugin-vue 1.9.0+, @vue/compiler-sfc is no longer required as a peer dependency. 👎

// vite.config.js
import vue from '@vitejs/plugin-vue'

export default {
  plugins: [vue()]
}

https://vitejs.dev/plugins/#vitejs-plugin-vue

https://github.com/vitejs/vite/tree/main/packages/plugin-vue

https://github.com/vitejs/vite/discussions/5663

https://github.com/vitejs/vite/tree/main/packages

refs

https://rollupjs.org/guide/zh/#outputformat



©xgqfrms 2012-2025

www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!

原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!


posted @   xgqfrms  阅读(142)  评论(7编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2021-04-30 CORS & preflight request All In One
2021-04-30 CORS mode All In One
2021-04-30 Node.js & Express server support CORS
2021-04-30 Nginx 本地端口转发 All In One
2020-04-30 js 文件上传 & 断点续传
2020-04-30 GSAP Animation All In One
2019-04-30 Apple & APPID & iOS & React Native
点击右上角即可分享
微信分享提示