升级至V3
本文摘录了reSKRipt V2 -> V3
版本的所有破坏性变更,如果你正在使用2.x
版本,可以参考本文进行升级。如果你在升级过程中遇到任何困难,欢迎在GitHub上提交Issue来咨询。
V3的主要变化为更新eslint
至8.x
版本、stylelint
至14.x
版本,并修改了devServer.https
配置项。
自动检测
你可以先使用我们的迁移脚本对项目做一次快速地扫描:
# 保持在项目根目录下
npx @reskript/doctor migrate
按照报告的说明进行修复后,如果依然有问题,以下是各变更的详细介绍。
依赖版本升级
以下是V3版本中涉及到外部依赖的版本更新,你需要对相应的工具进行版本更新。
NodeJS版本
V3要求你的NodeJS的最低版本为14.18.0
。在3.0.0
版本中我们并没有引入必须>= 14.18.0
的特性,但我们计划在后续的小版本中使用node:fs
形式引入内置模块,为了以CommonJS发布的reSKRipt
能够正常运行,我们对NodeJS的版本做出了更严格的要求。
更新ESLint
V3版本要求eslint
的版本为8.x
,你可以执行以下命令进行更新:
# NPM
npm i -D eslint@latest
# Yarn
yarn add -D eslint@latest
# PNPM
pnpm i -D eslint@latest
更新StyleLint
V3版本要求stylelint
的版本为14.x
,你可以执行以下命令进行更新:
# NPM
npm i -D stylelint@latest
# Yarn
yarn add -D stylelint@latest
# PNPM
pnpm i -D stylelint@latest
reSKRipt
已经在LESS文件上针对stylelint@14
做了相应的配置,你不会遇到缺失customSyntax
的警告。但如果你使用SASS等其它语言,则需要做进一步的自定义配置。
以SASS为例,如果需要自定义配置,你可以安装postcss-sass
包:
# NPM
npm i -D postcss-sass@latest
# Yarn
yarn add -D postcss-sass@latest
# PNPM
pnpm i -D postcss-sass@latest
随后在项目目录下新建stylelint.config.cjs
文件,并填写以下内容:
const sassSyntax = require('postcss-sass');
module.exports = {
extends: require.resolve('@reskript/config-lint/config/stylelint'),
overrides: [
{
files: ['**/*.sass'],
customSyntax: sassSyntax,
},
],
};
配置变更
devServer.https变更
我们在2.5.0
版本中引入了支持客户端HTTPS功能,为了满足对客户端页面与服务端请求代理的双重HTTPS需求,我们引入了一个新的devServer.https
配置结构,但依然保留了类型为boolean
的兼容性。
在V3版本中,devServer.https
的boolean
类型配置将被废弃,仅允许对象类型,有以下3种选择:
- 不配置该选项,则客户端与请求代理均不会使用HTTPS。
- 配置
{proxy: true}
则开启请求代理的HTTPS协议。 - 配置
{client: true, serverOptions: {...}}
则开启客户端网页请求的HTTPS,其中serverOptions
用于传递证书等信息。
具体请查看启用HTTPS的相关文档。
移除Sentry全局变量
在V3版本中,我们移除了eslint
配置中的Sentry
这一全局变量。如果你有在代码中直接使用Sentry.captureException
等方法,则可能在检查代码规范时看到类似的错误:
error 'Sentry' is not defined no-undef
你可以在你项目中的.eslintrc.cjs
文件中增加以下内容来阻止这一错误:
module.exports = {
// 其它如extends等配置
globals: {
Sentry: 'readonly',
},
};