-
Notifications
You must be signed in to change notification settings - Fork 456
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
从零开始配置webpack(基于webpack 4 和 babel 7版本) #1
Comments
babel 多了个 e 。 |
YvetteLau
changed the title
从零开始配置webpack(基于webpack 4 和 baebel 7版本)
从零开始配置webpack(基于webpack 4 和 babel 7版本)
Mar 25, 2019
改了改了~ |
赞赞赞~受启发了,下次再写webpack配置的时候,要顺便写个脚手架,方便他人阅读~~~ |
整理辛苦了 |
非常棒😆 |
小姐姐吗?代码写的🐂,认识一下,😄 |
不错哟,基础配置都有了! |
CleanWebpackPlugin这里要写成 const { CleanWebpackPlugin } = require('clean-webpack-plugin'); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
webpack启动后会从 Entry 里配置的 Module 开始递归解析 Entry 依赖的所有Module.每找到一个Module,就会根据配置的Loader去找出对应的转换规则,对Module进行转换后,再解析出当前的Module依赖的Module.这些模块会以Entry为单位进行分组,一个Entry和其所有依赖的Module被分到一个组也就是一个Chunk。最好Webpack会把所有Chunk转换成文件输出。在整个流程中Webpack会在恰当的时机执行Plugin里定义的逻辑。
下面我们开始从零开始配置一个支持打包图片,CSS,LESS,SASS,支持ES6/ES7和JSX语法,并对代码进行压缩的webpack配置.
首先初始化npm和安装webpack的依赖:
配置 webpack.config.js 文件如下:
说明: publicPath 上线时配置的是cdn的地址。
使用命令进行打包:
也可以将其配置到 package.json 中的 scripts 字段.
入口文件为 src/index.js, 打包输出到 dist/bundle.js.
html-webpack-plugin 可以指定template模板文件,将会在output目录下,生成html文件,并引入打包后的js.
安装依赖:
在 webpack.config.js 增加 plugins 配置:
HtmlWebpackPlugin 还有一些其它的参数,如title(html的title),minify(是否要压缩),filename(dist中生成的html的文件名)等
webpack-dev-server提供了一个简单的Web服务器和实时热更新的能力
安装依赖:
在 webpack.config.js 增加 devServer 配置:
在 package.json 的 scripts 字段中增加:
webpack-dev-server --mode development
之后,我们就可以通过 npm run dev , 来启动服务。
更多 webpack-dev-server 的知识,请访问: https://webpack.js.org/configuration/dev-server/
通过使用不同的 style-loader 和 css-loader, 可以将 css 文件转换成JS文件类型。
安装依赖:
在 webpack.config.js 中增加 loader 的配置。
loader 可以配置以下参数:
如果需要给loader传参,那么可以使用use+loader的方式,如:
如果希望图片存放在单独的目录下,那么需要指定outputPath
安装依赖:
在 webpack.config.js 中增加 loader 的配置(增加在 module.rules 的数组中)。
有些前端同事可能习惯于使用less或者是sass编写css,那么也需要在 webpack 中进行配置。
安装对应的依赖:
在 webpack.config.js 中增加 loader 的配置(module.rules 数组中)。
ES6/ES7/JSX 转义需要 Babel 的依赖,支持装饰器。
在 webpack.config.js 中增加 loader 的配置(module.rules 数组中)。
安装依赖:
在 webpack.config.js 中增加 optimization 的配置
因为CSS的下载和JS可以并行,当一个HTML文件很大的时候,可以把CSS单独提取出来加载
在 webpack.config.js 中增加 plugins 的配置,并且将 'style-loader' 修改为 { loader: MiniCssExtractPlugin.loader}。
CSS打包在单独目录,那么配置filename。
安装依赖:
在 webpack.config.js 中的 optimization 中增加配置
在 webpack.config.js 中增加 plugins 的配置
至此,webpack配置已经基本能满足需求。
webpack.config.js文件:
package.json文件:
更多loader和plugin的参数可以参考:
https://www.webpackjs.com/loaders/
https://www.webpackjs.com/plugins/
如果你有其它的webpack配置需求,欢迎留言~
The text was updated successfully, but these errors were encountered: