首页 > 解决方案 > 使用 webpack 和 babel 构建插件 - regeneratorRuntime 是从哪里来的?

问题描述

我使用 typescript、webpack 和 babel 构建了一个传单插件。我有一个用户抱怨在尝试导入它时,他们得到了regeneratorRuntime未定义的错误。我在测试我的插件时遇到了这个问题,但是在我的测试项目中很容易npm i regenerator-runtimeimport 'regenerator-runtime/runtime'. 当我查看 webpack 的编译输出时,当然是 gobbledygook,我确实看到了少数regeneratorRuntime. 但那是从哪里来的呢?我没有将它作为我的插件项目的依赖项,也没有在任何地方使用它。这是我的插件的 webpack 配置:

const path = require('path');

module.exports = {
    entry: './src/index',
    mode: 'production',
    output: {
        path: path.resolve(__dirname, 'build'),
        filename: 'leaflet-topography.js',
        library: 'Topography',
        libraryTarget: 'umd',
    },
    resolve: {
        extensions: ['.ts', '.tsx', '.js', '.json'],
    },
    module: {
        rules: [
            {
                test: /\.worker\.js$/,
                loader: 'worker-loader',
                options: {
                    filename: 'workers/[name].js',
                },
            },
            {
                test: /\.(ts|js)x?$/,
                exclude: /node_modules/,
                loader: 'babel-loader',
            },
        ],
    },
    externals: {
        leaflet: {
            commonjs: 'leaflet',
            commonjs2: 'leaflet',
            root: 'L',
        },
    },
};

还有我的 babelrc

{
    "presets": ["@babel/typescript", "@babel/preset-env"]
}

很简单,我想。regeneratorRuntime 来自哪里?通天塔装载机?如何将其打包为我的插件的内置,以便用户在使用我的插件时不必手动安装和导入它?

标签: webpackpluginsbabeljsbabel-loaderregenerator-runtime

解决方案


推荐阅读