【发布时间】:2016-04-09 23:01:16
【问题描述】:
我是 webpack 的新手,我正在尝试了解加载器及其属性,例如测试、加载器、包含等。
这是我在 google 中找到的 webpack.config.js 的示例 sn-p。
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 文件是否会连接成一个大文件?
我认为 exclude 是不言自明的。它不会被转译。
query: { presets: ['es2015'] } 有什么作用?
【问题讨论】:
-
1.是 2. 是 3. 否:仅当它是
required/imported 时才会被转译,而不是明确 4. 是 5. 是 6. babeljs.io/docs/plugins/preset-es2015 -
当你说“它只有在需要或导入时才会被转译。你是什么意思?这是否意味着如果 index.js 包含使用导入的代码,文件是index.js 中的引用会被导入吗?
-
只有在入口点导入这些文件时才会加载这些文件。如果您创建空的
index.js- 只有空的index.js会被加载并包含在包中。 -
index.js 中的代码是 import $ from 'jquery';并从 'react' 导入 React;那么这两个文件会被转译吗?我希望我能理解你最后的回复。谢谢!
-
"会被转译吗?" --- 只要它们匹配任何
include路径并且不匹配所有exclude路径。如果jquery在node_modules目录中 - 它不会被转译。
标签: javascript ecmascript-6 webpack webpack-style-loader