为了账号安全,请及时绑定邮箱和手机立即绑定

让 Snowpack 与 Babel 一起工作,“要求未定义”。我错过了需要转换吗?

让 Snowpack 与 Babel 一起工作,“要求未定义”。我错过了需要转换吗?

HUH函数 2023-09-28 10:15:19
我正在接近 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语句,因此您必须按照文档覆盖默认行为


查看完整回答
反对 回复 2023-09-28
  • 1 回答
  • 0 关注
  • 77 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信