Skip to content

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

@ithack

Description

@ithack

注意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": {}
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions