我在靜態網站上使用本地ES6模塊。
<script type="module"/span> src="./main.js"/span>></script>
在部署之前,我通過babel傳遞js檔案
//webpack.config.jsrules: [
{
test: /.js$/i,
exclude: /node_modules/,
使用。['babel-loader']。
}
]
//.babelrc
{
"presets": [
[
"@babel/preset-env"/span>,
{
"模塊"。false,
}
]
]
}
默認情況下,babel會把模塊變成普通js,盡管我在我的.babelrc中設定了一個標志 "modules": false
。我不希望babel把模塊變成commonjs,我只想把es2015中除了import和export以外的所有東西都變成模塊,這樣我就可以在瀏覽器中使用本地模塊了
。像這樣。 // main.js之前
export default ( ) => {
return 'Hello world!'。
}
// main.js在babel之后
export default function () {
return 'Hello world!'
}
根據檔案,babel提供了一個模塊:false的選項,但它對我來說不起作用
另外,沒有作業。
另外,使用supportedStaticESM的呼叫者也不作業
{
test: /.js$/i,
exclude: /node_modules/,
使用: {
loader: 'babel-loader'。
options: {
presets: ['@babel/preset-env'/span>]。
caller: {
supportsStaticESM: true。
}
}
}
}
然而,當我使用babel-cli時,我得到了我所需要的東西!
我認為webpack在這種情況下對babel不友好。謝謝你。
"babel-loader"/span>。"8.0.5"。
"webpack": "^5.40.0" "webpack".
uj5u.com熱心網友回復:
對我來說,只要指定target就可以了。
module.exports = {
entry: './js/index.js'/span>,
// .../span>
target: ['web'/span>, 'es5'/span>]
}
uj5u.com熱心網友回復:
如果它在Babel中作業,但在Webpack中不作業,那么很可能Webpack的配置覆寫了Babel的設定。
請嘗試洗掉presets。['@babel/preset-env'],從Webpack配置(如果存在)中洗掉。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/320678.html
標籤:
