// webpack.config.js
const path = require("path");
const webpack = require("webpack");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const { CleanWebpackPlugin } = require("clean-webpack-plugin");
module.exports = {
mode: "development", // production development
// development devtool cheap-module-eval-source-map
// production devtool cheap-module-source-map
devtool: "cheap-module-eval-source-map",
entry: {
sendlog: "./src/index.js",
},
output: {
// publicPath: "https://j.weizan.cn",
filename: "[name].js",
path: path.resolve(__dirname, "dist"),
},
devServer: {
contentBase: "./dist",
open: true,
hot: true,
hotOnly: true,
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: "babel-loader",
options: {
// 业务代码(存在全局污染)
presets: [
[
"@babel/preset-env",
{
targets: {
chrome: "67",
},
useBuiltIns: "usage",
},
],
],
// 库代码(类似于闭包形式)
plugins: [
[
"@babel/plugin-transform-runtime",
{
corejs: 2,
helpers: true,
regenerator: true,
useESModules: false,
},
],
],
},
},
],
},
plugins: [
new HtmlWebpackPlugin({
template: "src/index.html",
}),
new CleanWebpackPlugin(),
new webpack.HotModuleReplacementPlugin(),
],
};
{
"name": "log",
"version": "1.0.0",
"description": "",
"private": true,
"directories": {
"lib": "lib"
},
"scripts": {
"serve": "webpack-dev-server",
"build": "webpack"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"@babel/core": "^7.10.3",
"@babel/plugin-transform-runtime": "^7.10.3",
"@babel/preset-env": "^7.10.3",
"babel-loader": "^8.1.0",
"clean-webpack-plugin": "^3.0.0",
"html-webpack-plugin": "^4.3.0",
"webpack": "^4.43.0",
"webpack-cli": "^3.3.12",
"webpack-dev-server": "^3.11.0"
},
"dependencies": {
"@babel/polyfill": "^7.10.1",
"@babel/runtime": "^7.10.3",
"@babel/runtime-corejs2": "^7.10.3",
"axios": "^0.19.2",
"protobufjs": "^6.9.0"
}
}
import "@babel/polyfill";