webpack-study icon indicating copy to clipboard operation
webpack-study copied to clipboard

HMR那里,照搬代码失败。。。

Open JunedanVan opened this issue 7 years ago • 0 comments

webpack.config.js

const path = require('path');
const HtmlwebpackPlugin = require('html-webpack-plugin');
const webpack = require('webpack');

// 定义一些文件夹的路径
const ROOT_PATH = path.resolve(__dirname);
const SCRIPT_PATH = path.resolve(ROOT_PATH, 'script/app.js');
const BUILD_PATH = path.resolve(ROOT_PATH, 'build');

module.exports = {
    //项目的文件夹 可以直接用文件夹名称 默认会找index.js 也可以确定是哪个文件名字
    entry: SCRIPT_PATH,
    output: {
        path: BUILD_PATH,
        filename: 'build.js', // 将script文件夹中的两个js文件合并成build目录下的bundle.js文件
        publicPath: '/'
    },
    module: {
        rules: [
            {
                test: /\.css$/,
                use: [ 'style-loader', 'css-loader' ]
            } 
        ]
    },
    devServer: {
        contentBase: './build',
        hot: true
    },
    plugins: [
        new HtmlwebpackPlugin({
            title: 'hello~~'
        }),
        new webpack.NamedModulesPlugin(),
        new webpack.HotModuleReplacementPlugin(),
    ]
}

dev-server.js

const path = require('path');
const express = require('express');
const webpack = require('webpack');

const webpackDevMiddleware = require('webpack-dev-middleware');
const webpackConfig = require('./webpack.config');

const app = express(),
            DIST_DIR = path.join(__dirname, 'dist'), // // 设置静态访问文件路径
            PORT = 9090, // 设置启动端口
            complier = webpack(webpackConfig);

const devMiddlewart = webpackDevMiddleware(complier, {
    // 这里是对 webpackDevMiddleware 的一些配置,具体其他配置我们下面已经列出来了。

    //绑定中间件的公共路径,与webpack配置的路径相同
    publicPath: webpackConfig.output.publicPath,
    quiet: true     // 向控制台显示任何内容 
});

app.use(devMiddlewart);

// 设置访问静态文件的路径
app.use(express.static(DIST_DIR)) 

app.listen(PORT, function(){
    console.log('成功启动:localhost:'+PORT);
})

package.json

"scripts": {
    "start": "node dev-sever.js",
    "dev": "webpack-dev-server --open --config webpack.config.js"
  },

目录 webpack.config.js dev-server.js package.json script |---app.js |---foo.js |---bar.js |---DOM.js

JunedanVan avatar May 17 '18 07:05 JunedanVan