跳转到主文档

· 7 分钟阅读
重点
  1. 支持 Windows 平台
  2. 初步提供开箱即用的部署功能

支持 Windows 平台

在本次更新中,支持在 Windows 平台开发和使用 Modern.js。

其中,Unbundled 模式暂不支持在 Windows 平台使用,支持即将上线。

示例:应用(MWA)工程

在 Windows 平台上,可使用 npx @modern-js/create 创建应用项目:

在项目目录执行 pnpm run dev 命令可进行项目开发和调试:

在项目目录执行 pnpm run build 命令可进行项目打包:

在项目目录执行 pnpm run new 命令可开启项目扩展功能,如开启 BFF:

在项目目录执行 pnpm run test 命令,可运行单元测试和集成测试:

示例:Monorepo 工程

在 Windows 平台上,可使用 npx @modern-js/create 创建 Monorepo:

在 Monorepo 中执行 pnpm run new 可创建子项目,例如创建模块子项目:

在模块子项目目录执行 pnpm run new 可开启模块扩展功能,例如 Storybook:

另外,Modern.js 官网上,针对 Windows 和 macOS 上不同的命令,将会使用以下形式展示:

Windows 命令文档展示形式

初步提供开箱即用的部署功能

本次更新中,Modern.js 提供了部署相关的支持,包括:

  1. 使用内置的产品级 Web 服务器
  2. 提供 CDN 上传能力,将资源文件上传到阿里云 OSS 或腾讯云 COS 中。
  3. 第三方的静态 Web 服务器(包括 CDN)来托管应用产物。

使用 Modern.js 生成器开启对应功能后,只需要简单配置云平台所需的基本信息(例如 SecretID,SecretKey,BucketName 等)就可以直接部署到云平台。

在应用根目录下创建 .env 文件,或发布平台(例如 GitHub CI)中配置那些无需保密的信息,例如:

# 阿里云账号 ID(腾讯云无需该配置)
CLOUD_ACCOUNT_ID
# Bucket 名称
CLOUD_BUCKET_NAME
# 云平台部署区域
CLOUD_REGION

而与账号鉴权相关的信息务必在平台上配置,例如:

# 云平台 AccessKey
CLOUD_SECRET_ID
# 云平台 Secret Key
CLOUD_SECRET_KEY

示例

在项目中执行 pnpm run new 启用部署功能:

使用阿里云 FC + 部署应用:

了解更多

使用腾讯云 SCF + COS 部署应用:

了解更多

使用静态 Web 服务器托管产物:

了解更多

目前暂不支持不同云平台间产品混合使用。另外,Monorepo 部署支持将在后续上线,敬请期待。更多内容可以前往官网了解。

Changelog

  • 生成器模板更新 #176 #177 #183 #190 #185 #260 #259 #285 #300
  • 修复初始化项目 lint 报错 #194 #258
  • 应用项目启用 Electron 功能后增加提示信息 #181
  • 模块工程方案调整清除 dist 目录时机 #202
  • 一体化调用生成代码函数增加 requireResolve 参数 #201
  • 修复模块工程方案项目初始化未生成 .npmignore #209 / #198
  • 修复 MWA 项目在 Node.js 17 环境 dev 命令报错 #214
  • 优化 node-bundler-require 的 external 正则匹配规则 #218 #275
  • 修复 babel 配置版本号 #246
  • test 命令支持匹配 Windows 平台文件路径 #247
  • 修复 unbundle 模式测试报错 #226 / #224 #225
  • 修复 path 路径引用问题 #253
  • Windows 平台支持 #249 #263 #268 #270 #273 #276 #219 #286 #290 / #180 #182 #236
  • Storybook 使用 esbuild 生成预览文件 #254 / #228
  • 修复使用 declare class 时 babel 编译报错 #245
  • 修复启用功能安装依赖版本号 #267
  • 修复 unbundled 模式在 js 项目报错 #262 / #262
  • Egg 和 Koa 请求返回类型改为 JSON #266
  • new 命令支持启用 SSG #265 #299 / #298
  • 修复 unbundled 模式不支持使用 BFF #271 #269 / #235 #257
  • Egg 框架 body 解析配置 #272
  • 优化 unbundled 热更新提示 #264 / #186
  • 移除无用的中间件 #239
  • 移除 useHeaders API #279
  • 支持 SSG 配置 #207
  • 修复 HTML 模板 #277
  • 调整 webpack peerDependence 依赖 #293
  • 修改初始化项目默认分支 #306 #23
  • 使用 Egg 框架时,根据项目代码;生成类型文件 #284
  • 将底层插件实现改为基于 Farrow #305
  • 修复 Storybook 路径问题 #308 / #291
  • 修复模块工程方案 new 命令报错问题 #316 / #314
  • 修复 Tailwind CSS 配置问题 #317
  • 修复启用 unbundled 模式依赖安装问题 #12 / #238
  • 安装依赖和项目 git 初始化失败仅展示警告 #17
  • @electron/remote 升级 2.0 版本 #30
  • Electron 主进程支持除主目录(electron)外其余目录的编译,比如:shared 目录#44
  • Electron 修复 linux arm64 构建问题。#47
  • 修复 useModel 加载多个 Model 的时候 actions 类型合并问题 #31 / #30
  • 修复 SourceMap 路径问题 #309
  • 应用项目部署功能 #320

升级指南

本次更新可通过删除项目 pnpm-lock.yaml 或 yarn.lock 重新安装依赖即可使用 Modern.js 最新版本。 Modern.js 将提供自动升级工具,后续升级可使用升级工具进行,敬请期待。