Gulp + rollup + Babel:构建失败
Gulp + rollup + Babel: Fail on build
我想用 ESNext 重写我的一个旧模块。为了捆绑它,我使用 Rollup,为了编译它,我当然使用 Babel。所有这些都在 Gulp.
中进行了策划
到目前为止一切顺利,同时升级到 Babel v7、Gulp v4 和最新版本的 rollup (v0.56.0)。但是现在,因为我打算在我的 babel 配置中包含 useBuiltIns: true
,所以我不必担心 polyfilling,我收到 rollup:
抛出的错误
TypeError: Cannot read property 'code' of null
at error (/Users/robin.loeffel/Sites/misc/jz2/node_modules/rollup/dist/rollup.js:168:15)
at Object.error (/Users/robin.loeffel/Sites/misc/jz2/node_modules/rollup/dist/rollup.js:17916:21)
at /Users/robin.loeffel/Sites/misc/jz2/node_modules/rollup/dist/rollup.js:17925:29
at <anonymous>
你可以看看我的gulp文件here。这很简单。我使用 rollup-stream
与 gulp 集成,并使用 rollup-plugin-babel
、rollup-plugin-uglify
、rollup-plugin-node-resolve
和 rollup-plugin-commonjs
作为插件。这是我如何集成它的示例,如果您没有时间浏览整个内容:
gulp.task('make:iife:min', () => {
return rollupStream({
input: config.paths.index,
output: {
format: 'iife',
name: 'jazzer'
},
plugins: [
rollupNodeResolve(),
rollupCommonJs(),
rollupBabel(config.babel),
rollupUglify()
],
rollup: rollup
})
.pipe(source('jazzer.min.js'))
.pipe(gulp.dest(config.paths.dist));
});
我的Babel配置如下:
{
presets: [
['@babel/preset-env', {
targets: {
ie: 11,
browsers: 'last 2 versions'
},
useBuiltIns: 'usage',
modules: false,
debug: true
}]
],
ignore: ['node_modules']
}
当我用 rollupNodeResolve
注释掉该行时,禁用插件,它会编译,但会给我一个警告 'regenerator-runtime/runtime' is imported by src/jazzer.js, but could not be resolved – treating it as an external dependency
,例如。注释掉 ignore: ['node_modules']
会导致 Babel 导入太多东西并生成 83 kb 的包——所以这也不是办法。
希望有人能帮帮我!还有 here's 整个存储库,如果你想亲自检查一下。
这是 rollup-plugin-babel 中的错误。我已经为您归档了:https://github.com/rollup/rollup-plugin-babel/issues/192
我想用 ESNext 重写我的一个旧模块。为了捆绑它,我使用 Rollup,为了编译它,我当然使用 Babel。所有这些都在 Gulp.
中进行了策划到目前为止一切顺利,同时升级到 Babel v7、Gulp v4 和最新版本的 rollup (v0.56.0)。但是现在,因为我打算在我的 babel 配置中包含 useBuiltIns: true
,所以我不必担心 polyfilling,我收到 rollup:
TypeError: Cannot read property 'code' of null
at error (/Users/robin.loeffel/Sites/misc/jz2/node_modules/rollup/dist/rollup.js:168:15)
at Object.error (/Users/robin.loeffel/Sites/misc/jz2/node_modules/rollup/dist/rollup.js:17916:21)
at /Users/robin.loeffel/Sites/misc/jz2/node_modules/rollup/dist/rollup.js:17925:29
at <anonymous>
你可以看看我的gulp文件here。这很简单。我使用 rollup-stream
与 gulp 集成,并使用 rollup-plugin-babel
、rollup-plugin-uglify
、rollup-plugin-node-resolve
和 rollup-plugin-commonjs
作为插件。这是我如何集成它的示例,如果您没有时间浏览整个内容:
gulp.task('make:iife:min', () => {
return rollupStream({
input: config.paths.index,
output: {
format: 'iife',
name: 'jazzer'
},
plugins: [
rollupNodeResolve(),
rollupCommonJs(),
rollupBabel(config.babel),
rollupUglify()
],
rollup: rollup
})
.pipe(source('jazzer.min.js'))
.pipe(gulp.dest(config.paths.dist));
});
我的Babel配置如下:
{
presets: [
['@babel/preset-env', {
targets: {
ie: 11,
browsers: 'last 2 versions'
},
useBuiltIns: 'usage',
modules: false,
debug: true
}]
],
ignore: ['node_modules']
}
当我用 rollupNodeResolve
注释掉该行时,禁用插件,它会编译,但会给我一个警告 'regenerator-runtime/runtime' is imported by src/jazzer.js, but could not be resolved – treating it as an external dependency
,例如。注释掉 ignore: ['node_modules']
会导致 Babel 导入太多东西并生成 83 kb 的包——所以这也不是办法。
希望有人能帮帮我!还有 here's 整个存储库,如果你想亲自检查一下。
这是 rollup-plugin-babel 中的错误。我已经为您归档了:https://github.com/rollup/rollup-plugin-babel/issues/192