【发布时间】:2016-10-15 21:06:44
【问题描述】:
更新&答案:
我的误解是:
所有导入/需要的文件都会被加载器转换。
但是,某些导入的/必需的文件不需要进行转换。例如,“node_module”中的js文件已经处理完毕。所以不需要再被 Babel loader 改造。这基本上就是为什么我们需要在加载器中“排除:/node_modules/”。
同样,如果您知道加载器要转换哪些文件,您可以使用“include”。
简单地说,entry.js 将包含所有导入/需要的文件。但在这些文件中,只有少数需要转换。这就是“loader”引入“include”和“exclude”的原因。
我仍然不太清楚为什么我们需要在 webpack 的加载器中使用“包含”或“排除”的原因。
因为入口 js 文件总是需要递归地包含其导入/需要的 js 文件。所有导入/需要的文件都将由加载器进行转换。如果是这样,为什么我们需要在加载器中“包含”或“排除”?
一种常见的情况是“排除:/node_modules/”。让我困惑的是,如果入口 js 文件需要来自 node_modules 的一些文件,然后我们排除 node_modules。那么最终的捆绑文件将不包含来自 node_modules 的所需文件。在这种情况下,最终的 bundle.js 将无法正常工作。我在这里有什么遗漏吗?
module.exports = {
entry: [
'./index.js'
],
output: {
path: path.join(__dirname,"public"),
filename: 'bundle.js'
},
module: {
loaders: [{
test: /\.js$/,
loader: 'babel',
exclude: /node_modules/,
query: {
presets: ['es2015']
}
}]
}
};
谢谢
德里克
【问题讨论】:
标签: webpack