我正在接近 Snowpack,之前使用过 Webpack + Babel 加载器。我错过了一些东西,我知道是什么:某种polyfillrequire或 conversion。我不知道require在浏览器中工作的 Webpack 的内部结构,但我无法通过 Snowpack 得到同样的结果。在我的文件中snowpack.config.json,我正在加载 Babel 插件:{ "buildOptions": { "clean": true, "out": "dist" }, "mount": { "src": "/" }, "plugins": [ "@snowpack/plugin-babel" ]}我.babelrc正在使用@babel/preset-env:{ "presets": [ ["@babel/preset-env", { "corejs": 3, "useBuiltIns": "usage" }] ]}测试脚本被转换snowpack build为:"use strict";require("core-js/modules/es.array.concat");require("core-js/modules/es.array.map");// Import polyfilldocument.addEventListener('DOMContentLoaded', function () { [1, 2, 3].concat([4, 5]).map(function (n) { return console.log(n); });});window.addEventListener('load', function () {});(当然,问题是require没有定义)
1 回答
呼啦一阵风
TA贡献1802条经验 获得超6个赞
Babel 仍然将import
语句转换为require
您的配置。为了防止这种情况,请尝试以下配置:
{ "presets": [ ["@babel/preset-env", { "targets": { "esmodules": true }, "modules": false }] ]}
您可以使用其他设置来扩展它,但这应该是一个最小的工作设置。
正如我在评论中提到的,没有modules: false
它仍然可以转换为require
语句,因此您必须按照文档覆盖默认行为
添加回答
举报
0/150
提交
取消