我是webpack的新手,我正在尝试理解加载器及其属性,如测试,加载器,包含等 .
这是我在谷歌中找到的webpack.config.js的示例片段 .
module: {
loaders: [
{
test: /\.js$/,
loader: 'babel-loader',
include: [
path.resolve(__dirname, 'index.js'),
path.resolve(__dirname, 'config.js'),
path.resolve(__dirname, 'lib'),
path.resolve(__dirname, 'app'),
path.resolve(__dirname, 'src')
],
exclude: [
path.resolve(__dirname, 'test', 'test.build.js')
],
cacheDirectory: true,
query: {
presets: ['es2015']
}
},
]
}
-
我是否正确测试:/. js$/将仅用于扩展名为.js的文件?
-
加载器:'babel-loader',是我们使用npm安装的加载器
-
包括:我对此有很多疑问 . 我是对的,我们放在阵列中的任何东西都会被编译好吗?这意味着,将编译lib,app和src中的index.js,config.js和所有* .js文件 .
-
关于include的更多问题:当文件被转换时,* .js文件会被连接成一个大文件吗?
-
我认为排除是自我解释的 . 它不会被转化 .
-
查询:{presets:['es2015']}怎么办?
3 回答
在webpack配置中,有很多配置,重要的是配置
entry - 可以是一个数组或一个对象,用于定义要捆绑的资产的入口点,可以是js,因为此处的测试只针对/.js$执行 . 您的应用程序(如果有多个入口点)使用数组 .
include - 定义加载器将转换导入文件的路径或文件集 .
exclude是自解释的(不要从这些地方转换文件) .
output - 要创建的最终包 . 如果你指定例如
输出:{filename:“[name] .bundle.js”,供应商:“react”}
然后你的应用程序js文件将捆绑为main.bundle.js并在vendor.js文件中作出反应 . 如果你不在html页面中同时使用它们是一个错误 .
希望它有所帮助
这份文件帮助我更好地理解 . 看起来它适用于webpack 1但仍然适用 .
https://webpack.github.io/docs/configuration.html#module-loaders
这个例子帮助我理解了发生了什么 . 看起来你使用包含或排除,但不是两者 . 测试是应用于所有文件的条件 . 因此,如果包含文件夹,则每个文件都必须通过测试条件 . 我没有验证这一点,但根据文档提供的示例,它看起来就是它的工作原理 .
1)正确 .
2)正确 .
3)正确 .
4)我不确定 . 我的webpack.config.js文件包含一个输出键,并将它们全部捆绑到一个文件中:
5)正确 .
6)这告诉babel-loader你希望它执行什么样的转换,以及其他编译选项 . 因此,例如,如果您希望它转换jsx以及缓存结果以提高性能,您可以将其更改为: