webpack学习第七步——提升开发效率

2020-02-14  本文已影响0人  Love小六六

watch 监听变化自动打包

// 增加 --watch
"scripts": {
    "start": "webpack --watch"
},
import Header from './header'
import avatar from "./avatar.jpg";
import style from './index.scss'

// Header()
let img = new Image()
img.src = avatar
img.classList.add(style.avatar)
let root =document.getElementById('root')
root.append(img)
import Header from './header'
import avatar from "./avatar.jpg";
import style from './index.scss'

Header()
let img = new Image()
img.src = avatar
img.classList.add(style.avatar)
let root =document.getElementById('root')
root.append(img)

利用webpack-dev-server实现自动打包

npm install webpack-dev-server -D
"scripts": {
    "start": "webpack-dev-server"
}

自动打开浏览器访问服务器地址

const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const CleanWebpackPlugin = require('clean-webpack-plugin')
module.exports = {
    mode: "development",
    entry: './src/index.js',
    devtool: "source-map",
    // 增加devServer配置
    devServer: {
        contentBase: './build', // 服务器地址
        open: true // 自动打开浏览器
    },
    module: {
        rules: [{
            test: /\.(jpg|png|gif)$/,
            use: {
                loader: "url-loader",
                options: {
                    name: '[name]_[hash].[ext]',
                    outputPath: 'images/',
                    limit: 2048
                }
            }
        },{
            test: /\.scss$/,
            use: [
                'style-loader',
                {
                    loader: "css-loader",
                    options: {
                        importLoaders: 2 ,// 通过import引入的scss文件也要走前两个loader
                        modules: true
                    }
                },
                'sass-loader',
                'postcss-loader'
            ]
        }]
    },
    plugins: [
        new HtmlWebpackPlugin({
        template: 'src/index.html'
        }),
        new CleanWebpackPlugin()
    ],
    output: {
        path: path.resolve(__dirname, 'build'),// 绝对路径+bundle文件夹
        filename: 'bundle.js'
    }
}

修改默认端口号

devServer: {
    contentBase: './build',
    open: true,
    port: 1314
}

proxy 跨域代理

devServer: {
    contentBase: './build',
    open: true,
    proxy: {
        '/api': 'http:localhost:3000'
    }
},
fetch('/api/data.json').then((data)=>{
    return data.json()
}).then(res => console.log(res))

自己写server.js实现自动打包

npm install express -D
npm install webpack-dev-middleware -D
const express = require('express')
const webpack = require('webpack')

const app = express()

app.listen(3344,()=>{
    console.log('server is running')
})
"scripts": {
    "start": "webpack-dev-server",
    // 增加命令,用于使用server.js
    "server": "node server.js"
  },
const express = require('express')
const webpack = require('webpack')
const webpackDevMiddleware = require('webpack-dev-middleware')
const config = require('./webpack.config')
const compiler = webpack(config) // webpack编译器

const app = express()
app.use(webpackDevMiddleware(compiler,{
    // 可设置publicPath
    // publicPath: config.output.publicPath
}))

app.listen(3344,()=>{
    console.log('server is running')
})
npm run server
上一篇 下一篇

猜你喜欢

热点阅读