从零构建React开发环境(三)

接下来,我们将使用webpack server帮我们优化开发过程。

再开始之前,我们换需要补一下之前遗漏的内容。

html-webpack-plugin自动生成index.html

目前我们的index.html,仅仅只是引用了我们导入的buddle.js,我们可以使用webpack的插件html-webpack-plugin帮我们生成html
webapck-htmlwebpackplugin

  1. 安装依赖npm i -d html-webpack-plugin
  2. webpack.config.js配置插件
  const path = require("path");
+ const HtmlWebpackPlugin = require('html-webpack-plugin');

  module.exports = {
    entry: './src/index.js',
    output: {
      filename: 'bundle.js',
      path: path.resolve(__dirname, 'dist')
    },
+   plugins: [
+     new HtmlWebpackPlugin({
+       title: "hello word"
+     })
    ]
  }

这样我们就可以删除index.html,当打包时会在./dist/下生成新的index.html文件

自动清除

webpack-清除dist
1.安装依赖``
2.更新webpack.config.js

  const path = require('path');
  const HtmlWebpackPlugin = require('html-webpack-plugin');
+ const CleanWebpackPlugin = require('clean-webpack-plugin');

  module.exports = {
    entry: './src/index.js',
    output: {
      filename: 'bundle.js',
      path: path.resolve(__dirname, 'dist')
    },
    plugins: [
+     new CleanWebpackPlugin(['dist']),
      new HtmlWebpackPlugin({
         title: "hello word"
       })
    ]
  };

这样我们每次构建时,会先删除./dist目录,然后重新生成

开启source map方便debug

webpack编译的时候回对代码做混淆压缩,这样出现bug的时候很难追踪代码
1.更新webpack.config.js

const path = require('path');
  const HtmlWebpackPlugin = require('html-webpack-plugin');
  const CleanWebpackPlugin = require('clean-webpack-plugin');

  module.exports = {
    entry: './src/index.js',
+  devtool: 'inline-source-map',
    output: {
      filename: 'bundle.js',
      path: path.resolve(__dirname, 'dist')
    },
    plugins: [
      new CleanWebpackPlugin(['dist']),
      new HtmlWebpackPlugin({
         title: "hello word"
       })
    ]
  };

好了,接下来开始正题

开启webpack-server

  1. 安装依赖npm i -d webpack-dev-server
  2. 更新webpack.config.js
module.exports = {
  entry: './src/index.js',
  devtool: 'inline-source-map',
+ devServer: {
+   contentBase: './dist',
+   port:"3000"
+ },
 ......

这样我们就可以使用npx webpack-dev-server --open,来开启服务器端口为3000

但是好像还有问题,比如开发时我希望能看到具体源码,但是在打包发布时,我并不希望看到具体源码,所以我们再来优化。

使用不同环境不同的webpack配置。使用npm start

参考这个webpack-merge,不做赘述

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1 Webpack 1.1 概念简介 1.1.1 WebPack是什么 1、一个打包工具 2、一个模块加载工具 3...
    Kevin_Junbaozi阅读 6,765评论 0 16
  • GitChat技术杂谈 前言 本文较长,为了节省你的阅读时间,在文前列写作思路如下: 什么是 webpack,它要...
    萧玄辞阅读 12,721评论 7 110
  • 版权声明:本文为博主原创文章,未经博主允许不得转载。 webpack介绍和使用 一、webpack介绍 1、由来 ...
    it筱竹阅读 11,243评论 0 21
  • 文图/猫小慧 窗起凉风雨连连, 乐曲轻抚果汁甜。 美食璀璨粉嫩脸, 挽手相拥怀里面。 漫步河边话连篇, 温柔情愫笑开颜。
    猫小慧阅读 188评论 0 1
  • 万众追金庸,人皆慕小宝 ,江湖寻侠者,梦醒不知处武侠,是华人的情结,江湖,是华人的乐土,快意恩仇,劫富济贫是对皇权...
    缘动优选阅读 805评论 0 1