猿问

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

我正在接近 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 polyfill

document.addEventListener('DOMContentLoaded', function () {

  [1, 2, 3].concat([4, 5]).map(function (n) {

    return console.log(n);

  });

});


window.addEventListener('load', function () {});

(当然,问题是require没有定义)


HUH函数
浏览 78回答 1
1回答

呼啦一阵风

Babel 仍然将import语句转换为require您的配置。为了防止这种情况,请尝试以下配置:{   "presets": [     ["@babel/preset-env", {       "targets": {         "esmodules": true       },       "modules": false     }]   ]}您可以使用其他设置来扩展它,但这应该是一个最小的工作设置。正如我在评论中提到的,没有modules: false它仍然可以转换为require语句,因此您必须按照文档覆盖默认行为
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答