rollup+typescript开发笔记

187 阅读1分钟

自己造一个简单轮子asyncretry

> mkdir asyncretry && cd asyncretry
> mkdir src
> npm init -y                               // 初始化npm
> npm install --global rollup               // 全局安装rollup
> touch rollup.config.js                    // 创建rollup配置文件,并手动修改该配置文件
> npm install --global typescript           // 全局安装typescript
> tsc --init                                // 初始化ts配置文件tsconfig.json
> npm install --save-dev \
            typescript \
            rollup \
            rollup-plugin-babel \
            rollup-plugin-commonjs \
            rollup-plugin-node-resolve \
            rollup-plugin-typescript \
            @types/ms \
            ts-node \
            tslib

rollup.config.js 参考rollupjs.org/guide/en/#c…

import resolve from 'rollup-plugin-node-resolve'
import commonjs from 'rollup-plugin-commonjs'
import typescript from 'rollup-plugin-typescript'
import pkg from './package.json'

export default [
  // browser-friendly UMD build
  {
    input: 'src/main.js',
    output: {
      name: 'howLongUntilLunch',
      file: pkg.browser,
      format: 'umd'
    },
    plugins: [
      resolve(), // so Rollup can find `ms`
      commonjs() // so Rollup can convert `ms` to an ES module
    ]
  },

  // CommonJS (for Node) and ES module (for bundlers) build.
  // (We could have three entries in the configuration array
  // instead of two, but it's quicker to generate multiple
  // builds from a single configuration where possible, using
  // an array for the `output` option, where we can specify
  // `file` and `format` for each target)
  {
    input: 'src/main.js',
    external: ['ms'],
    output: [
      { file: pkg.main, format: 'cjs' },
      { file: pkg.module, format: 'es' }
    ]
  }
];