webpack-demo |- package.json |- webpack.config.js+ |- server.js |- /dist |- /src |- data.xml |- icon.png+ |- style.css |- my-font.woff |- my-font.woff2 |- print.js |- index.js |- /node_modules
npm install --save-dev webpack-dev-servernpm install --save-dev express webpack-dev-middleware
// webpack.config.jsconst path = require('path');const HtmlWebpackPlugin = require('html-webpack-plugin'); // 自动生成页面const CleanWebpackPlugin = require('clean-webpack-plugin'); // 自动清理,清理dist旧文件module.exports = { mode: 'development', devtool: 'inline-source-map', // 站点地图,可以输出错误发生所在地 devServer: { contentBase: './dist' // webpack-dev-server在哪里寻找文件 }, entry: { index: './src/index.js', print: './src/print.js' }, plugins: [ new CleanWebpackPlugin(['dist']), new HtmlWebpackPlugin({ title: 'VISION-CANVAS-L', filename: 'index.html', template: 'view/index.html', }), ], output: { filename: '[name].bundle.js', path: path.resolve(__dirname, 'dist'), publicPath: '/' }, module: { rules: [ { test: /\.css$/, use: [ 'style-loader', 'css-loader' ] }, { test: /\.(png|svg|jpg|gif)$/, use: [ 'file-loader' ] }, { test: /\.(woff|woff2|eot|ttf|otf)$/, use: [ 'file-loader' ] }, { test: /\.(csv|tsv)$/, use: [ 'csv-loader' ] }, { test: /\.xml$/, use: [ 'xml-loader' ] } ], }};
// /server.jsconst express = require('express');const webpack = require('webpack');const webpackDevMiddleware = require('webpack-dev-middleware');const app = express();const config = require('./webpack.config.js');const compiler = webpack(config);// Tell express to use the webpack-dev-middleware and use the webpack.config.js// configuration file as a base.app.use(webpackDevMiddleware(compiler, { publicPath: config.output.publicPath}));// Serve the files on port 3000.app.listen(3000, function () { console.log('Example app listening on port 3000!\n');});
{ "name": "webpackDemo", "version": "1.0.0", "description": "", "private": true, "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "watch": "webpack --watch", "build": "webpack", "start": "webpack-dev-server --open", "server": "node server.js" }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { "clean-webpack-plugin": "^1.0.0", "css-loader": "^2.0.0", "csv-loader": "^3.0.2", "express": "^4.16.4", "file-loader": "^2.0.0", "html-webpack-plugin": "^3.2.0", "style-loader": "^0.23.1", "webpack": "^4.27.1", "webpack-cli": "^3.1.2", "webpack-dev-middleware": "^3.4.0", "webpack-dev-server": "^3.1.10", "xml-loader": "^1.2.1" }, "dependencies": { "lodash": "^4.17.11" }}