@mega-apps/cli
Version:
Mom builder for all mega modules apps. The recommended basic operation dependency package is attached, and users can check and repair defects in actual applications.
132 lines (94 loc) • 3.66 kB
Markdown
# -apps/cli
Mom Web 应用统一构建工具
> 附带推荐的基础运行依赖包,开发者可以在实际使用中查缺补漏。
<p align="left">
<a href="https://www.npmjs.com/package/@mega-apps/cli"><img src="https://img.shields.io/npm/dm/@mega-apps/cli" alt="Downloads"></a>
<a href="https://www.npmjs.com/package/@mega-apps/cli"><img src="https://img.shields.io/npm/v/@mega-apps/cli" alt="Version"></a>
<a href="https://www.npmjs.com/package/@mega-apps/cli"><img src="https://img.shields.io/npm/l/@mega-apps/cli" alt="License"></a>
</p>
## 特性
- [x] 重点支持使用`Nuxt脚手架`创建的项目(附带推荐依赖包)
- [x] 支持使用`VueCLI脚手架`创建的项目(不附带依赖包)
- [x] 自动识别`Nuxt项目`及`VueCLI项目`
- [x] 注入`VueLoader`, 实现 Vue 开启组件名称自动命名与开发环境统一。
- [x] 注入`Vue补丁`, 实现嵌套子布局路由正常(Keepalive情况下)。
- [x] 注入`Module.prototype.require`, 兼容依赖包查找
- [x] 注入项目规范检测及修补机制
- [x] 依赖安装加速控制(.npmrc, .yarnrc) 适用于npm中国镜像站
- [x] 推荐使用`Yarn`或者`pnPm`来管理依赖
- [x] 集成项目、代码规范依赖;如:`ls-lint`, `eslint`, `stylelint`, ...
- [x] 集成`Jest`, `Playwright`, `Vitest` 等测试框架
- [x] 集成`TypeScript`引擎
- [x] 集成`TailwindCSS`,`PostCSS`, `LESS`, `SASS` 等引擎
- [x] 集成`` 类型库
- [x] 集成 `Nuxtjs` >= 2.15.8, `Nuxt Libs` 常用库: https://modules.nuxtjs.org/
- [x] 集成适用于`Webpack`, `Vite` 常用构建工具
- [x] 集成各种`Mock`工具,支持`HTTP/HTTPS`, `WebSocket`, `Native Mock`
- [x] 集成`MegaMom`平台的各种插件/库/模块. 如:[`-apps/nuxt-plugin-mom`](//www.npmjs.com/package/@mega-apps/nuxt-plugin-mom)
## 安装
```bash
# 推荐使用 Yarn 来安装依赖
yarn add -apps/cli --dev
# 或使用 pnPm 安装依赖
pnpm add -D -apps/cli
```
## 配置
```js
// package.json 文件
{
// 修改 package.json 中的配置
// ...
"scripts": {
"dev": "mom",
"build": "mom generate"
// ...
},
}
```
## 应用
### 如何扩展 nuxt.config.js
```js
// "@mega-apps/cli" 提供了 nuxtConfigExtend 函数 及 momMerge 函数
// momMerge 函数的原型:
// import momMerge from "deepmerge";
// export { momMerge };
import { nuxtConfigExtend, momMerge } from "@mega-apps/cli";
```
### 默认提供了基础的nuxt.config 配置
```js
// 引入基础的nuxt.config.配置
import { generateBaseConfig, def } from "@mega-apps/cli/config/nuxt.config";
```
### 如何生成一个新的配置
```js
// 引入基础的nuxt.config.配置
import { generateBaseConfig, def } from "@mega-apps/cli/config/nuxt.config";
// def 函数,是一个兼容的快捷定义函数
const baseCfg = generateBaseConfig({
supportESLint: false,
supportStyleLint: false,
supportTypeScript: false,
supportTailwindCSS: false,
});
// 构造新的 nuxt.config
const config = nuxtConfigExtend([
{},
def(1, {})
], baseCfg);
// 导出配置
export default config;
```
### 如何对node-sass 进行配置
```js
import {getDefaultSassImplementation } from "@mega-apps/cli/config/nuxt.config";
/**
* 获得默认的Sass解析器
* @param defaultPkg, 默认值:node-sass, 可选值:sass
* @returns module.exports
* @note 关于node-sass的版本要根据nodejs的版本指定,参见:https://www.npmjs.com/package/node-sass 内的版本号对应说明
*
```
### 如何查看基础的配置内容
基础配置存放到: `"@mega-apps/cli/config/nuxt.config.js"`
## 变更日志
[CHANGELOG](./CHANGELOG.md)