Rollup打包代码引入问题?

rollup配置


import bable from "rollup-plugin-babel";
export default {
    input: "./index.js", // 指定模块入口
    output: {
        name:"test",
        file: "./dist/index.js",
        format: "umd"
    },
    plugins: [
        bable({ 
            exclude: "node_modules/**"
        })
    ]
};

babel配置

module.exports = {
    "presets": [
        [
            "@babel/preset-env",
            {
                "useBuiltIns": "usage",
                "corejs": 3,
                "targets": [
                    "> 1%",
                    "last 2 versions",
                    "not ie <=8"
                ]
            }]
    ]
};

index.js

[1, 2, 3, 0].map(item => {
    console.log(item);
    return new Promise(resolve=> {
        resolve();
    });
});

构建产物

(function (factory) {
    typeof define === 'function' && define.amd ? define(['core-js/modules/es.array.map.js', 'core-js/modules/es.object.to-string.js', 'core-js/modules/es.promise.js'], factory) :
    factory();
})((function () { 'use strict';

    [1, 2, 3, 0].map(function (item) {
      console.log(item);
      return new Promise(function (resolve) {
        resolve();
      });
    });

}));

为什么构建的产物中的core-js不会引入对应代码呢

阅读 2.1k
1 个回答
✓ 已被采纳

babelHelpers 默认就是 bundled ,打成umi格式包时,需要配合 @rollup/plugin-node-resolverollup-plugin-commonjs 这俩插件一起使用。
参考:

import babel from '@rollup/plugin-babel';
import resolve from '@rollup/plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';

export default {
  input: 'index.js',
  output: {
    file: 'dist/index.js',
    format: 'umd',
    name: 'test',
    strict: false
  },
  plugins: [
    commonjs(),
    resolve(),
    babel({
      babelrc: false,
      babelHelpers: 'bundled',
      exclude: 'node_modules/**',
      presets: [
        [
          '@babel/preset-env',
          {
            targets: {
              browsers: '> 1%, ie >= 11'
            },
            useBuiltIns: 'usage',
            corejs: 3
          }
        ]
      ]
    })
  ]
};
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题