美文网首页
rollup配置

rollup配置

作者: 罗不错 | 来源:发表于2020-07-15 16:48 被阅读0次
// rollup.config.js
import vue from 'rollup-plugin-vue'
import babel from 'rollup-plugin-babel' // rollup 的 babel 插件,ES6转ES5
import commonjs from 'rollup-plugin-commonjs'   // 将非ES6语法的包转为ES6可用,添加导出语法,以支持import require
import { terser } from 'rollup-plugin-terser'  //代码压缩,取代uglify,支持ES模块 
import minimist from 'minimist'
import nodeResolve from 'rollup-plugin-node-resolve'     // 帮助寻找node_modules里的包,并引入进来
// import replace from 'rollup-plugin-replace'           // 替换待打包文件里的一些变量,如 process在浏览器端是不存在的,需要被替换
// import uglify from 'rollup-plugin-uglify'             // 压缩包 ,es6用rollup-plugin-uglify-es  ,被rollup-plugin-terser替代
// rollup-plugin-alias插件:替换模块路径中的别名;

const env = process.env.NODE_ENV
const argv = minimist(process.argv.slice(2))  // 抽出形参和实参,变成对象
 
const config = {
  input: `${argv.fileDir}/${argv.uploadComponentName}/index.js`,
  // external: ['react', 'redux'], // 告诉rollup,不打包react,redux;将其视为外部依赖
  output: {
    name: argv.uploadComponentName, // 打包后的全局变量,如浏览器端 window.ReactRedux         
    // globals: {
    //   react: 'React',     // 这跟external 是配套使用的,指明global.React即是外部依赖react
    //   redux: 'Redux'
    // },
    // exports: 'named',
    extend: true
  },
  plugins: [
    commonjs(),
    vue({
      css: true,
      compileTemplate: true,
      style: {
        postcssPlugins: [require('autoprefixer')]
      }
    }),
    // replace({
    //   'process.env.NODE_ENV': JSON.stringify(env)
    // })
  ]
}

// 指定为rely,则把依赖包打进来
if(argv.rely){
  config.plugins.push(nodeResolve())
}
// 指定为es6时,则不转换成es5
if (!argv.es6) {
  config.plugins.push(babel({
    runtimeHelpers: true,
    extensions: ['.js', '.jsx', '.es6', '.es', '.mjs', '.vue'],
    exclude: 'node_modules/**'
  }))
}
// Only minify browser (iife) version
if (argv.format === 'iife') {
  config.plugins.push(terser())
}
export default config

相关文章

网友评论

      本文标题:rollup配置

      本文链接:https://www.haomeiwen.com/subject/bjentktx.html