Skip to content
This repository has been archived by the owner on Aug 9, 2022. It is now read-only.

v4.0.0-rc.11

Pre-release
Pre-release
Compare
Choose a tag to compare
@sorrycc sorrycc released this 07 Apr 09:06
· 452 commits to master since this release

1、新增命令 umi lint,包含 eslint 和 stylelint 的规则和命令

lint 有两种用法,1)仅使用 umi 提供的规则配置,然后用项目里安装的 eslint 和 stylelint 执行,好处是对 IDE 友好 2)使用 umi 的 lint 命令。

用法 1 是在 .eslintrc 和 .stylelintrc里扩展 umi 的配置,

{
  "extends": "umi/eslint"
}
{
  "extends": "umi/stylelint"
}

用法 2 是直接执行 umi lint 命令,默认会用前面的配置,当然也可通过配置文件进行修改。

同时,Umi 提供的 eslint 规则我们有进行梳理,目前仅包含质量类的规则,因为我们觉得,风格类的规则应该交给 prettier 或其他同类工具。

注:由于尺寸问题,umi 没有包含 @umijs/lint(@umijs/max 内置了),使用时会提示你手动安装。

2、支持通过环境变量 SOCKET_SERVER 指定 socket 服务器,场景是 umi.js 和页面 url 不是同一个 server 时使用,比如

# 指向 socket 服务器到本地 umi dev 启动的服务器
$ SOCKET_SERVER=http://localhost:8000/ umi dev

# 打开开发服务器,这个页面里引用 http://localhost:8000/umi.js
$ open http://dev.prod.domain/

3、支持 node: 前缀的 import 语法和补丁

越来越多的库使用 node: 前缀的 import,比如 chalk、file-type 等 sindresorhus 提供的依赖。之前会报 UnhandledSchemaError 的错误,现在通过 NormalModuleReplacementPlugin 替换资源 request 进行了修复。

import { join } from 'node:path';
join;

4、修复项目里指定 16 及以下版本的 react 时构建报错的问题

原因是,babel-preset-react 中的配置项 runtime 和 importSource 是要搭配使用的,比如 runtime 设置为 classic 而 importSource 设置为 react 时会报错。

// 如果 react >= 17
runtime: 'automatic',
importSource: 'react',

// 如果 react < 17
runtime: 'classic',
importSource: undefined,