webpack加载程序和include
webpack loaders and include
我是webpack的新手,我正在努力了解加载程序及其属性,如测试、加载程序、include等。
下面是我在谷歌上找到的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']
}
},
]
}
test:/.js$/只用于扩展名为.js的文件,我说得对吗?
加载程序:"babel loader",是我们使用npm 安装的加载程序
其中包括:我对此有很多问题。我们放入阵列中的任何东西都会被传送,我说得对吗?这意味着,index.js、config.js以及lib、app和src中的所有*.js文件都将被转换。
更多的问题包括:当文件被传输时,*.js文件会被连接到一个大文件中吗?
我认为排除是不言自明的。它不会被运输。
查询:{presets:['es2015']}做什么?
在webpack配置中有多种配置,最重要的是
-
entry
-可以是一个数组或一个对象,定义您想要捆绑的资产的入口点,可以是js,正如这里的测试所说,只为/.js$执行。如果您的应用程序有多个入口点,请使用数组。 -
include
-定义一组路径或文件,加载程序将在其中转换导入的文件。 -
exclude
-不要从这些地方转换文件。 -
output
-您想要创建的最后一个捆绑包。例如,如果指定output: { filename: "[name].bundle.js", vendor: "react" }
然后,您的应用程序js文件将被绑定为main.bundle.js,并在vendor.js文件中进行反应。如果您在html页面中不同时使用这两种方法,这将是一个错误。
希望它能帮助
此文档帮助我更好地理解。看起来它适用于webpack 1,但仍然适用。
https://webpack.github.io/docs/configuration.html#module-装载机
装载机
一组自动应用的加载器。
每个项目都可以具有以下属性:
- 测试:必须满足的条件
- 排除:必须不满足的条件
- include:加载程序将在其中转换导入文件的路径或文件数组
- loader:一串"!"分隔的loader
- loader:作为字符串的loader数组
这个例子帮助我理解了发生了什么。看起来你使用了include或exclude,但没有同时使用两者。测试是应用于所有文件的条件。因此,如果包含一个文件夹,则每个文件都必须通过测试条件。我还没有对此进行验证,但根据文档提供的示例,它看起来就是这样工作的。
module: {
rules: [
{
// "test" is commonly used to match the file extension
test: /'.jsx$/,
// "include" is commonly used to match the directories
include: [
path.resolve(__dirname, "app/src"),
path.resolve(__dirname, "app/test")
],
// "exclude" should be used to exclude exceptions
// try to prefer "include" when possible
// the "loader"
loader: "babel-loader" // or "babel" because webpack adds the '-loader' automatically
}
]
}
1)正确。
2) 正确。
3) 正确。
4) 我不确定。我的webpack.config.js文件包含一个输出密钥,并将其捆绑到一个文件中:
output: {
path: path.resolve(__dirname, 'build'),
filename: 'bundle.js'
}
5) 正确。
6) 这个命令告诉babel-loader您希望它执行哪种类型的transfile,以及其他编译选项。因此,例如,如果您希望它也能传输jsx+缓存结果以提高性能,您可以将其更改为:
query: {
presets: ['react', 'es2015'],
cacheDirectory: true
}
- 如何使用url加载程序在webpack中导入多个图像
- keyup事件处理程序更改焦点不适用于快速键入
- 用程序搜索JQuery数据表中的文本
- Javascript:selenium Web驱动程序isDisplayed()不工作
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- Emberjs应用程序加载在除Index之外的所有路由上
- ExtJS 5用程序点击actioncolumn gridview
- 使用电话间隙在Android应用程序中显示SQL Lite的数据
- 如何从Java/scala调用js美化程序
- 在AngularJS应用程序中使用封装指令和路由的推荐方式是什么
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- angular 1.5应用程序中的导航栏
- YUI3 IO实用程序是否可以根据给定的内容类型标头值自动序列化数据
- 如何创建带有插槽的vue js组件预加载程序
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 在Windows 10中自动执行例行程序(主要与浏览器交互)
- 在Web应用程序中使用Highcharts javascript
- 模块化与性能与性能与角度应用程序中的ng-include
- webpack加载程序和include
- Node.js应用程序-如何连接到mongodb和“共享”;通过include连接