ithack / ithack.github.io

我的前端博客,访问地址:
https://ithack.github.io
2 stars 1 forks source link

记一次rollup打包开发插件实战 #21

Open ithack opened 4 years ago

ithack commented 4 years ago

注意npm link 本地调试的方式需要babel安装@babel/plugin-transform-modules-umd插件,否则不支持UMD的文件调试! rollup.config.js 配置如下:

import babel from 'rollup-plugin-babel';
import uglify from "rollup-plugin-uglify";
import { eslint } from 'rollup-plugin-eslint';
const packages = require('./package.json');
const banner = '/*!\n' +
` * fecommon v${packages.version}\n` +
` * (c) 2017-${new Date().getFullYear()}\n` +
' * Released under the MIT License.\n' +
' */'
export default {
  input: 'src/index.js',
  output:[{
    file: 'dist/fe-common.es.js',
    format: 'es'
  },{
    file: 'dist/fe-common.umd.js',
    format: 'umd',
    name: "fecommon",
    banner
  },{
    file: 'dist/fe-common.min.js',
    format: 'iife',
    name: 'fecommon',
    banner
  }] ,

  plugins: [ // 增加 plugins
    uglify(),
    eslint({
        fix: true
    }),
    babel({
      exclude: 'node_modules/**' // 不对node_modules进行编译
    })
  ]
}

package.json

{
  "name": "fe-common",
  "version": "0.1.8",
  "author": "kevin",
  "description": "插件test",
  "main": "dist/fe-common.umd.js",
  "module": "dist/fe-common.es.js",
  "browser": "dist/fe-common.min.js",
  "scripts": {
    "build": "rollup -c -w & rimraf dist coverage",
    "cdn": "node ./deploy-cdn.js"
  },
  "files": [
    "README.md",
    "dist"
  ],
  "devDependencies": {
    "@babel/core": "^7.9.6",
    "@babel/preset-env": "^7.9.6",
    "archiver": "^4.0.1",
    "babel-plugin-transform-runtime": "^6.12.0",
    "babel-preset-es2015": "^6.13.2",
    "fs-extra": "^9.0.0",
    "rimraf": "^3.0.2",
    "rollup": "^2.10.9",
    "rollup-plugin-babel": "^2.6.1",
    "rollup-plugin-eslint": "^7.0.0",
    "rollup-plugin-uglify": "^1.0.1",
    "uglify-js": "^3.9.3"
  },
  "dependencies": {}
}