3.0.0 • Published 1 year ago

@doddle/doddle-build v3.0.0

Weekly downloads
-
License
ISC
Repository
-
Last release
1 year ago

doddle-build

一个 webpack 构建工具,思路来自于 react-scripts

操作指南

  1. 安装
npm install @doddle/doddle-build --save-dev
  1. pacckage.json 的 scripts 加编译命令
scripts: {
  "start": "doddle-build start --port 8903",  // 本地开发环境
  "dev": "doddle-build dev",        // 线上开发环境
  "qa": "doddle-build qa",         // 线上测试环境
  "prod": "doddle-build prod ",  // 线上正式环境
}

不同的编译指令将有一个全局变量 process.env.NODE_ENV 进行区分,其值分别对应 local,dev,qa,prod

待开发功能

  1. 运行端口检测?
  2. proxy 支持

遇到的难点

  1. 热更新通信未启动(live reload),原因是 WebpackDevServer 调用时需要指定 ServerEntrypoints,需要调用 addDevServerEntrypoints 将 hotServer 的配置手动注入到 webpack Config 的配置中; 在stackoverflow有人提了出来,在官方文档给出了解决方案
  2. 关于 splitChunks 的使用,由于 http1.1 以后支持了多路复用,即一次可以多个请求同时发出。所以以前提出的构建打包成 css + js + css 三个文件的方案放在现在不是那么合适,我们可以将 css 与 js 拆成更多的包,4 个或者 6 个,特别是有 antd 这种大的 ui 项目时,可以把 react 全家桶打成一个包,将 antd 及其周边打成一个包, 详见 webpack.config.js;参考文章
  3. 热更新不生效,无法做到不刷新页面更新:当把 contentBase 修复成和 compile out(dist)一致时,样式能做到热更新;而 Js 仍然是哪个叼样;要解决这个,是个大工程(可参见 react-hot-loader)。参考文章, 分析文章

可配置项

通过在 package.json 中添加 webpack 属性,像这样:

  "devDependencies": {
    "@doddle/doddle-build": "^1.0.3",
    "@doddle/eslint-config-doddle": "~0.0.13"
  },
  "webpack": {
    "copyPublic": true
  },

支持五种配置,如下所示: config 参数

参数说明类型默认值
title网站 titlestringdoddle site
useEslint编译时是否开启 Eslint 检查booleanfalse
useAnalyse是否开启打包图谱分析booleanfalse
useAntd是否使用了 antd,使用了 antd 会单独打包booleanfalse
copyPublic是否复制 public 文件夹下的文件到打包到 dist 目录booleanfalse
publicResolvePath打包到 dist 目录的路径, 默认 dist 根路径string'./'
publicPath静态资源路径string'./'

cmd 参数

doddle-build start --port 8906 // 指定端口

// 以下三个参数,主要针对的是SSR打包的支持
doddle-build dev --entry index --dist public --template none 指定了很多个变量
参数说明类型默认值
port端口,仅适用于 startstring3000
open是否打开浏览器,仅适用于 startbooleanfalse
entry入口文件,不适用于 startstringindex
dist打包目标文件夹,不适用于 startstringdist
template是否输出 html 文件,为 none 时不输出,不适用于 startstringyes

changeLog

  • 2019-09-01: 添加动态 title 配置支持,修复 css HMR

  • 2019-10-06: 添加 public 文件夹拷贝支持,完善 readme 支持

  • 2019-10-22: 添加对 ssr 模式打包的支持,即支持入口指定,编译输出文件夹指定等特性

  • 2020-04-01: 添加对 webpack.config.js 自定义配置的支持,支持微前端 react 子项目打包; 增加 wepack useMicroMode 配置

3.0.0

1 year ago

2.0.0

3 years ago

1.4.1

3 years ago

1.4.0

4 years ago

1.3.8

4 years ago

1.3.7

4 years ago

1.3.6

4 years ago

1.3.5

4 years ago

1.3.4

4 years ago

1.3.3

4 years ago

1.3.2

4 years ago

1.3.1

4 years ago

1.3.0

4 years ago

1.2.3

5 years ago

1.2.2

5 years ago

1.2.1

5 years ago

1.2.0

5 years ago

1.1.1

5 years ago

1.1.0

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

0.0.17

5 years ago

0.0.16

5 years ago

0.0.15

5 years ago

0.0.14

5 years ago

0.0.13

5 years ago

0.0.12

5 years ago

0.0.11

5 years ago

0.0.10

5 years ago

0.0.9

5 years ago

0.0.8

5 years ago