javascript - 无法让 babel loader 应用于依赖项
问题描述
我的项目的一个依赖项正在使用箭头函数,我似乎无法让 babel-loader 转换外部依赖项。
我的模块部分看起来像
module: {
rules: [
{test: /\.(js|jsx)$/, loader: 'babel-loader'}
]
}
我最初在规则对象中有 exclude: /node_modules/(?!superagent)/ 但删除它以确保它不是正则表达式问题。
.babelrc
{
"presets": [
"@babel/env",
"@babel/react"
]
}
index.js
import superagent from 'superagent'
superagent.get('http://www.google.com')
.then(result=>console.log('done'))
.catch(e=>console.error(e));
在这种情况下,有问题的依赖是 superagent
我使用显示问题的配置创建了一个最小存储库https://github.com/ksmith97/WebpackIssue
我不确定这里还有什么可以尝试的
编辑:要明确这是针对 IE 11 的支持。
解决方案
将 babelrc 配置直接移动到 babel loader:
const path = require('path');
module.exports = {
entry: './index.js',
mode: 'development',
devtool: 'source-map',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js'
},
module: {
rules: [{
test: /\.(jsx?)$/,
use: {
loader: 'babel-loader',
options: {
presets: [
"@babel/preset-env",
"@babel/preset-react"
]
}
},
}]
}
};
这个问题也让我感到惊讶,但是查看文档你会看到:
一旦找到包含 package.json 的目录,搜索将停止,因此相对配置仅适用于单个包中。
并且对于里面的包node_modules
,它们都有自己的package.json
文件,当正在编译的文件在包里面时,这将使.babelrc
您项目根目录的 被忽略node_modules
。
加载程序配置没有此限制。
推荐阅读
- python - 在 Facebook Prophet 模型 Python 上仅绘制预测值
- google-apps-script - Google App Script - 每封电子邮件仅使用 1 行数据发送电子邮件
- php - php artisan key:generate 运行成功但没有生成密钥 PHP 7.4.9
- c# - .Net 事件网格 Webhook 模型绑定错误
- sonarcloud - 意外符号:'2e4ce68d4e3feec97e992821e6391166943f4d49'
- python - Python - 乘法表创建
- git-bash - 如何在同一目录的 Windows 终端中打开一个新的 git-bash 选项卡?
- spring - 实施项目以在本地启动 spring 云数据流服务器时出错
- javascript - 获取使用 WebdriverIO v5 显示的元素数量
- kubernetes - 是否有已知的方法来确定自动缩放阈值?