webpack總結和菠菜網站出租
準備篇
webpack是一個用node的npm包管理工具上的工具,下載和安裝:npm install -g --save-dev webpack類似於這樣。
它主要包括文件:webpack.config.js、package.json(初始化自動生成,裏面有很多版本相關的信息,也包括安裝的loaders等等)、入口文件、出口文件。
在webpack.config.js裏面,主要代碼框架:
const path = require(‘path‘);
const ExtractTextPlugin = require(‘extract-text-webpack-plugin‘);
?
module.exports = {
? ? entry: ‘./src/main.js‘,
? ? output: {
? ? ? ? filename: ‘bundle.js‘, ? ? ? ? ? ? ? //輸出的文件名
? ? ? ? path: path.resolve(dirname, ‘build‘) //輸出文件所在的目錄
? ? },
? ? devServer: { // 檢測代碼變化並自動重新編譯並自動刷新瀏覽器
? ? },
? ? module: { // 如何處理項目中不同類型的模塊
? ? ? ? rules: [ // 用於規定在不同模塊被創建時如何處理模塊的規則數組
? ? ? ? ? ? {
? ? ? ? ? ? ? ? test: /(.jsx|.js)$/,
? ? ? ? ? ? ? ? use: {
? ? ? ? ? ? ? ? ? ? loader: "babel-loader",
? ? ? ? ? ? ? ? ? ? options: {
? ? ? ? ? ? ? ? ? ? ? ? presets: [
? ? ? ? ? ? ? ? ? ? ? ? ]?
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? },
? ? ? ? ? ? ? ? exclude: path.resolve(__dirname, ‘node_modules‘),
? ? ? ? ? ? ? ? include: path.resolve(__dirname, ‘src‘),
? ? ? ? ? ? },
? ? ? ? ? ? {//css單獨打包
? ? ? ? ? ? ? ? test: /.scss/,
? ? ? ? ? ? ? ? use: ExtractTextPlugin.extract({
? ? ? ? ? ? ? ? ? ? use: [{
? ? ? ? ? ? ? ? ? ? ? ? loader:"css-loader"
? ? ? ? ? ? ? ? ? ? },{
? ? ? ? ? ? ? ? ? ? ? ? loader: ‘sass-loader‘
? ? ? ? ? ? ? ? ? ? }],
? ? ? ? ? ? ? ? ? ? fallback: "style-loader"
? ? ? ? ? ? ? ? })
? ? ? ? ? ? },
? ? ? ? ? ? {
? ? ? ? ? ? ? ? test: /.css$/,
? ? ? ? ? ? ? ? use: ExtractTextPlugin.extract({
? ? ? ? ? ? ? ? ? ? use: [‘css-loader‘],
? ? ? ? ? ? ? ? }),
? ? ? ? ? ? },
? ? ? ? ? ? {
? ? test: /.(png|jpg)$/,
? ? loader: ‘url-loader?limit=8192‘,
? ? }
? ? ? ? ]
? ? },
? ? plugins: [
? ? ? ? new ExtractTextPlugin({
? ? ? ? ? ? filename: ‘main-page.css‘,
? ? ? ? }),
? ? ]
};
webpack總結和菠菜網站出租