-
concepts
webpack是现代js应用的模块打包器,它是非常可配置,但要明确以下四个概念。
- Entry
webpack构建一个你应用程序依赖的图,起点便是所谓的erntry point。它告诉wenpack从哪开始并且
按照依赖图去知道什么要打包。可以将此比作 contextual root or the first file to kick off your app.。
The simplest example://webpack.config.js module.exports={ entry:'./path/to/my/entry/file.js' };
- Output
一旦打包好了资源,依然需要告诉webpack哪里打包应用程序,output属性告诉webpack如何处理打包过的代码。
The simplest example://webpack.config.js module.exports={ entry:'./path/to/my/entry/file.js', output: { path: path.resolve(__dirname, 'dist'), filename: 'my-first-webpack.bundle.js' } };
示例中用output.filename和output.path属性告诉webpack包名和将之emit to哪。
- Loaders
目的在于将所有项目中的资源作为webpack而非浏览器关心的。webpack眼中一切(.css,.hmtl,.scss,.jpg,etc)
皆模块。但其只知道js,而Loaders在webpack中将这些文件转化成依赖图中的模块。有两个目的在高水准要求上:
a.确定什么文件该被相应loader转换(test),b:转换相应文件以加入到依赖图(use)。const path = require('path');
const config = {
entry: './path/to/my/entry/file.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'my-first-webpack.bundle.js'
},
module: {
rules: [
{test: /.(js|jsx)$/, use: 'babel-loader'}
]
}
};
module.exports = config;4. Plugins 因loaders仅基于每个文件转换,故plugins是最常用的对打包模块的 "compilations" or "chunks"执行操作和自定义功能等。 要用plugin需要用require()且将其放入plugins数组。多数plugins可按需自定义 因可在配置中按不同目的多次使用,此时需要用new来构建它的一个实例。
const HtmlWebpackPlugin = require('html-webpack-plugin'); //installed via npm
const webpack = require('webpack'); //to access built-in plugins
const path = require('path');const config = {
entry: './path/to/my/entry/file.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'my-first-webpack.bundle.js'
},
module: {
rules: [
{test: /.(js|jsx)$/, use: 'babel-loader'}
]
},
plugins: [
new webpack.optimize.UglifyJsPlugin(),
new HtmlWebpackPlugin({template: './src/index.html'})
]
};module.exports = config;
- Entry
热门评论
这篇文章是不是直接把官网的英语用谷歌翻译了一遍后直接搬过来的?很多句子读都读不通顺。
另外,这篇文章好歹也是二个月前扔上来的。我想告诉你的是webpack2.0官方网站已经有中文文档了。不需要使用谷歌翻译了。