我使用 typescript、webpack 和 babel 构建了一个传单插件。我有一个用户抱怨在尝试导入它时,他们得到了regeneratorRuntime
未定义的错误。我在测试我的插件时遇到了这个问题,但是在我的测试项目中很容易npm i regenerator-runtime
和import '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 来自哪里?通天塔装载机?如何将其打包为我的插件的内置,以便用户在使用我的插件时不必手动安装和导入它?