@modern-js/main-doc 2.32.1 → 2.32.2-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/docs/en/apis/app/runtime/app/define-config.mdx +2 -2
- package/docs/en/apis/app/runtime/model/auto-actions.mdx +2 -2
- package/docs/en/apis/app/runtime/model/model_.mdx +0 -1
- package/docs/en/apis/app/runtime/model/use-static-model.mdx +1 -1
- package/docs/en/configure/app/tools/tailwindcss.mdx +43 -1
- package/docs/en/guides/advanced-features/bff/frameworks.mdx +2 -2
- package/docs/en/guides/advanced-features/bff/function.mdx +1 -1
- package/docs/en/guides/basic-features/css.mdx +28 -18
- package/docs/en/guides/basic-features/mock.mdx +1 -1
- package/docs/en/guides/topic-detail/framework-plugin/hook.mdx +2 -2
- package/docs/en/guides/topic-detail/generator/plugin/category.md +1 -1
- package/docs/en/guides/topic-detail/generator/plugin/context.md +1 -1
- package/docs/en/guides/topic-detail/micro-frontend/c02-development.mdx +2 -2
- package/docs/en/guides/topic-detail/model/auto-actions.mdx +1 -1
- package/docs/en/guides/topic-detail/model/performance.mdx +2 -1
- package/docs/en/guides/topic-detail/model/typescript-best-practice.mdx +1 -1
- package/docs/en/guides/topic-detail/model/use-model.mdx +1 -1
- package/docs/en/tutorials/first-app/c05-loader.mdx +0 -2
- package/docs/zh/configure/app/tools/tailwindcss.mdx +42 -2
- package/docs/zh/guides/basic-features/css.mdx +27 -18
- package/modern.config.ts +8 -0
- package/package.json +5 -5
- package/docs/en/configure/app/source/design-system.mdx +0 -1175
- package/docs/zh/configure/app/source/design-system.mdx +0 -1174
    
        package/CHANGELOG.md
    CHANGED
    
    | @@ -1,5 +1,15 @@ | |
| 1 1 | 
             
            # @modern-js/main-doc
         | 
| 2 2 |  | 
| 3 | 
            +
            ## 2.32.2-alpha.0
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            ### Patch Changes
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            - bc1f8daf0ff: feat(builder): support custom logger in dev server
         | 
| 8 | 
            +
             | 
| 9 | 
            +
              feat(builder): 支持自定义 logger
         | 
| 10 | 
            +
             | 
| 11 | 
            +
              - @modern-js/builder-doc@2.32.2-alpha.0
         | 
| 12 | 
            +
             | 
| 3 13 | 
             
            ## 2.32.1
         | 
| 4 14 |  | 
| 5 15 | 
             
            ### Patch Changes
         | 
| @@ -57,9 +57,9 @@ State type is Array, generate the following Actions: | |
| 57 57 | 
             
              - usage: `arr.unshift(element1, ..., elementN)`
         | 
| 58 58 | 
             
              - `elementN`: the element or elements to add to the beginning of the array.
         | 
| 59 59 | 
             
            - `filter`: filter element.
         | 
| 60 | 
            -
            {/*  | 
| 60 | 
            +
            {/* Semantics are different from native methods, API to be modified  */}
         | 
| 61 61 | 
             
            - `concat`: concat array.
         | 
| 62 | 
            -
            {/*  | 
| 62 | 
            +
            {/* Semantics are different from native methods, API to be modified  */}
         | 
| 63 63 | 
             
            - `splice`: modify the array by deleting or replacing existing elements or adding new elements in place, and return the modified array(Note that it is different from the native `splice` return value).
         | 
| 64 64 | 
             
              - usage: `splice(start[, deleteCount[, item1[, item2[, ...]]]])`
         | 
| 65 65 | 
             
              - `start`: specifies the start position of the modification(counting from 0).
         | 
| @@ -61,7 +61,6 @@ const fooModel = model('foo').define({ | |
| 61 61 | 
             
            - `context`: Reduck Context, can get underlying `store` object. `store` support all Redux Store [API](https://redux.js.org/api/store), also mounts the `use` method for consuming the Model, and the `unmount` method for unmounting the Model.
         | 
| 62 62 | 
             
            - utils: commonly used tool like `use`、`onMount`. `use` is the same as `store.use`, `onMount` is the hook function after the Model is mounted.
         | 
| 63 63 |  | 
| 64 | 
            -
            {/* TODO: @anchao 调整类型  */}
         | 
| 65 64 | 
             
            ```ts
         | 
| 66 65 | 
             
            interface Utils {
         | 
| 67 66 | 
             
              use: UseModel;
         | 
| @@ -17,6 +17,14 @@ const tailwind = { | |
| 17 17 | 
             
            };
         | 
| 18 18 | 
             
            ```
         | 
| 19 19 |  | 
| 20 | 
            +
            Used to modify the configuration of [Tailwind CSS](https://tailwindcss.com/docs/configuration).
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            ### Enabling Tailwind CSS
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            Before using `tools.tailwindcss`, you need to enable the Tailwind CSS plugin for Modern.js.
         | 
| 25 | 
            +
             | 
| 26 | 
            +
            Please refer to the section [Using Tailwind CSS](/guides/basic-features/css.html#using-tailwind-css) for instructions on how to enable it.
         | 
| 27 | 
            +
             | 
| 20 28 | 
             
            ### Function Type
         | 
| 21 29 |  | 
| 22 30 | 
             
            When `tools.tailwindcss`'s type is Function, the default tailwindcss config will be passed in as the first parameter, the config object can be modified directly, or a value can be returned as the final result.
         | 
| @@ -51,6 +59,40 @@ export default { | |
| 51 59 |  | 
| 52 60 | 
             
            ### Notes
         | 
| 53 61 |  | 
| 54 | 
            -
            Please note | 
| 62 | 
            +
            Please note:
         | 
| 63 | 
            +
             | 
| 64 | 
            +
            - If you are using both the `tailwind.config.{ts,js}` file and `tools.tailwindcss` option, the configuration defined in `tools.tailwindcss` will take precedence and override the content defined in `tailwind.config.{ts,js}`.
         | 
| 65 | 
            +
            - If you are using the `source.designSystem` configuration option simultaneously, the `theme` configuration of Tailwind CSS will be overridden by the value of `source.designSystem`.
         | 
| 55 66 |  | 
| 56 67 | 
             
            The usage of other configurations follows the same approach as the official usage of Tailwind CSS. Please refer to [tailwindcss - Configuration](https://tailwindcss.com/docs/configuration) for more details.
         | 
| 68 | 
            +
             | 
| 69 | 
            +
            ### About source.designSystem
         | 
| 70 | 
            +
             | 
| 71 | 
            +
            `source.designSystem` is a deprecated configuration option in Modern.js.
         | 
| 72 | 
            +
             | 
| 73 | 
            +
            Starting from Modern.js vMAJOR_VERSION.33.0, you can use the `theme` configuration option of Tailwind CSS as a replacement for `source.designSystem`. It is no longer necessary to split the `theme` configuration and set it on `designSystem`.
         | 
| 74 | 
            +
             | 
| 75 | 
            +
            - Previous usage:
         | 
| 76 | 
            +
             | 
| 77 | 
            +
            ```ts title="modern.config.ts"
         | 
| 78 | 
            +
            const { theme, ...rest } = tailwindConfig;
         | 
| 79 | 
            +
             | 
| 80 | 
            +
            export default {
         | 
| 81 | 
            +
              tools: {
         | 
| 82 | 
            +
                tailwindcss: rest,
         | 
| 83 | 
            +
              },
         | 
| 84 | 
            +
              source: {
         | 
| 85 | 
            +
                designSystem: theme,
         | 
| 86 | 
            +
              },
         | 
| 87 | 
            +
            };
         | 
| 88 | 
            +
            ```
         | 
| 89 | 
            +
             | 
| 90 | 
            +
            - Current usage:
         | 
| 91 | 
            +
             | 
| 92 | 
            +
            ```ts title="modern.config.ts"
         | 
| 93 | 
            +
            export default {
         | 
| 94 | 
            +
              tools: {
         | 
| 95 | 
            +
                tailwindcss: tailwindConfig,
         | 
| 96 | 
            +
              },
         | 
| 97 | 
            +
            };
         | 
| 98 | 
            +
            ```
         | 
| @@ -1,10 +1,10 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            sidebar_position: 3
         | 
| 3 | 
            -
            title: Frameworks
         | 
| 4 3 | 
             
            ---
         | 
| 4 | 
            +
             | 
| 5 5 | 
             
            # Frameworks
         | 
| 6 6 |  | 
| 7 | 
            -
            Modern.js's BFF supports different runtime frameworks, currently Modern.js's BFF supports two runtime frameworks[Express.js](https://expressjs.com/)  | 
| 7 | 
            +
            Modern.js's BFF supports different runtime frameworks, currently Modern.js's BFF supports two runtime frameworks: [Express.js](https://expressjs.com/) and [Koa.js](https://koajs.com/).
         | 
| 8 8 |  | 
| 9 9 | 
             
            ## Function Mode
         | 
| 10 10 |  | 
| @@ -103,37 +103,47 @@ Depending on your needs, you can selectively import the CSS files provided by Ta | |
| 103 103 |  | 
| 104 104 | 
             
            :::
         | 
| 105 105 |  | 
| 106 | 
            -
            ### Tailwind CSS | 
| 107 | 
            -
             | 
| 108 | 
            -
            Tailwind CSS provides an official extension called [Tailwind CSS IntelliSense](https://github.com/tailwindlabs/tailwindcss-intellisense) for autocompletion of Tailwind CSS class names, CSS functions, and directives in VS Code.
         | 
| 106 | 
            +
            ### Configuring Tailwind CSS
         | 
| 109 107 |  | 
| 110 | 
            -
             | 
| 108 | 
            +
            In Modern.js, you have two ways to configure Tailwind CSS:
         | 
| 111 109 |  | 
| 112 | 
            -
            1.  | 
| 113 | 
            -
            2. Create a `tailwind.config.ts` file in the root directory of your project and write the desired Tailwind CSS configuration.
         | 
| 110 | 
            +
            1. Using the `tailwind.config.{ts,js}` file, which follows the official usage of Tailwind CSS. Please refer to ["Tailwind CSS - Configuration"](https://tailwindcss.com/docs/configuration) for more details.
         | 
| 114 111 |  | 
| 115 112 | 
             
            ```ts title="tailwind.config.ts"
         | 
| 113 | 
            +
            import type { Config } from 'tailwindcss';
         | 
| 114 | 
            +
             | 
| 116 115 | 
             
            export default {
         | 
| 117 | 
            -
              content: [
         | 
| 118 | 
            -
             | 
| 119 | 
            -
                './config/html/**/*.{html,ejs,hbs}',
         | 
| 120 | 
            -
                './storybook/**/*',
         | 
| 121 | 
            -
              ],
         | 
| 122 | 
            -
            };
         | 
| 116 | 
            +
              content: ['./src/**/*.{js,jsx,ts,tsx}'],
         | 
| 117 | 
            +
            } as Config;
         | 
| 123 118 | 
             
            ```
         | 
| 124 119 |  | 
| 125 | 
            -
             | 
| 120 | 
            +
            :::tip
         | 
| 121 | 
            +
            Please upgrade Modern.js to version >= MAJOR_VERSION.33.0 to support automatic reading of `tailwind.config.{ts,js}` files.
         | 
| 122 | 
            +
            :::
         | 
| 126 123 |  | 
| 127 | 
            -
             | 
| 128 | 
            -
            import tailwindConfig from './tailwind.config';
         | 
| 124 | 
            +
            2. Using the [tools.tailwindcss](/configure/app/tools/tailwindcss.html) configuration option. This is the old way of configuring Tailwind CSS, and we recommend using the `tailwind.config.{ts,js}` file for configuration.
         | 
| 129 125 |  | 
| 130 | 
            -
             | 
| 126 | 
            +
            ```ts title="modern.config.ts"
         | 
| 127 | 
            +
            export default {
         | 
| 131 128 | 
             
              tools: {
         | 
| 132 | 
            -
                tailwindcss:  | 
| 129 | 
            +
                tailwindcss: {
         | 
| 130 | 
            +
                  content: ['./src/**/*.{js,jsx,ts,tsx}'],
         | 
| 131 | 
            +
                },
         | 
| 133 132 | 
             
              },
         | 
| 134 | 
            -
            } | 
| 133 | 
            +
            };
         | 
| 135 134 | 
             
            ```
         | 
| 136 135 |  | 
| 136 | 
            +
            If you are using both the `tailwind.config.{ts,js}` file and `tools.tailwindcss` option, the configuration defined in `tools.tailwindcss` will take precedence and override the content defined in `tailwind.config.{ts,js}`.
         | 
| 137 | 
            +
             | 
| 138 | 
            +
            ### Tailwind CSS Autocomplete
         | 
| 139 | 
            +
             | 
| 140 | 
            +
            Tailwind CSS provides an official extension called [Tailwind CSS IntelliSense](https://github.com/tailwindlabs/tailwindcss-intellisense) for autocompletion of Tailwind CSS class names, CSS functions, and directives in VS Code.
         | 
| 141 | 
            +
             | 
| 142 | 
            +
            You can follow the steps below to enable the autocomplete feature:
         | 
| 143 | 
            +
             | 
| 144 | 
            +
            1. Install the [Tailwind CSS IntelliSense](https://github.com/tailwindlabs/tailwindcss-intellisense) extension in VS Code.
         | 
| 145 | 
            +
            2. If the root directory of your project does not have a `tailwind.config.{ts,js}` file, you need to create one and write the Tailwind CSS configuration for your current project. Otherwise, the IDE plugin will not work correctly.
         | 
| 146 | 
            +
             | 
| 137 147 | 
             
            ### Tailwind CSS Version
         | 
| 138 148 |  | 
| 139 149 | 
             
            Modern.js supports both Tailwind CSS v2 and v3 versions, and the framework will recognize the version of the `tailwindcss` dependency in the project `package.json` file and enable the corresponding configuration. By default, we will install Tailwind CSS v3 version for you.
         | 
| @@ -52,7 +52,7 @@ const Mock = require('mockjs'); | |
| 52 52 | 
             
            module.exports = {
         | 
| 53 53 | 
             
              '/api/getInfo': Mock.mock({
         | 
| 54 54 | 
             
                'data|1-10': [{ name: '@cname' }],
         | 
| 55 | 
            -
              }) /* => {data: [{name: " | 
| 55 | 
            +
              }) /* => {data: [{name: "Jack"}, {name: "Jim"},  {name: "Mary"}} */,
         | 
| 56 56 | 
             
            };
         | 
| 57 57 | 
             
            ```
         | 
| 58 58 |  | 
| @@ -66,7 +66,7 @@ pipeline.use((count, next) => { | |
| 66 66 | 
             
              return count * 2;
         | 
| 67 67 | 
             
            });
         | 
| 68 68 |  | 
| 69 | 
            -
            // 3.  | 
| 69 | 
            +
            // 3. Run
         | 
| 70 70 | 
             
            pipeline.run(1); // 2
         | 
| 71 71 | 
             
            pipeline.run(5); // 6
         | 
| 72 72 | 
             
            ```
         | 
| @@ -155,7 +155,7 @@ workflow.use(count => { | |
| 155 155 | 
             
              return count * 2;
         | 
| 156 156 | 
             
            });
         | 
| 157 157 |  | 
| 158 | 
            -
            // 3.  | 
| 158 | 
            +
            // 3. Run
         | 
| 159 159 | 
             
            workflow.run(1); // [2, 2]
         | 
| 160 160 | 
             
            workflow.run(5); // [6, 10]
         | 
| 161 161 | 
             
            ```
         | 
| @@ -58,7 +58,7 @@ npx @modern-js/create@latest plugin --plugin @modern-js/generator-plugin-plugin | |
| 58 58 | 
             
            ? Please select the base type of the plugin: Web App
         | 
| 59 59 | 
             
            ```
         | 
| 60 60 |  | 
| 61 | 
            -
            ###  | 
| 61 | 
            +
            ### Custom
         | 
| 62 62 |  | 
| 63 63 | 
             
            ```bash
         | 
| 64 64 | 
             
            npx @modern-js/create@latest plugin --plugin @modern-js/generator-plugin-plugin
         | 
| @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            sidebar_position: 2
         | 
| 3 | 
            -
            title:  | 
| 3 | 
            +
            title: Development
         | 
| 4 4 | 
             
            ---
         | 
| 5 5 |  | 
| 6 6 | 
             
            # Experience Micro Frontend
         | 
| @@ -16,7 +16,7 @@ Currently supports two routing modes | |
| 16 16 | 
             
            - Self-controlled routing
         | 
| 17 17 | 
             
            - Conventional routing
         | 
| 18 18 |  | 
| 19 | 
            -
            First, clarify the routing mode of the main application [create a  | 
| 19 | 
            +
            First, clarify the routing mode of the main application [create a file-based routing main App](#file-based-routing-main-app) or [create a self-controlled main App](#self-controlled-main-app)
         | 
| 20 20 |  | 
| 21 21 | 
             
            In this experience we will create two sub-applications Table and Dashboard for the main application (Table is reduced routing, Dashboard is self-controlled routing)
         | 
| 22 22 |  | 
| @@ -84,7 +84,8 @@ const fooModel = model('foo').define({ | |
| 84 84 | 
             
            });
         | 
| 85 85 |  | 
| 86 86 | 
             
            function ComponentA() {
         | 
| 87 | 
            -
              //  | 
| 87 | 
            +
              // By passing in the selector function
         | 
| 88 | 
            +
              // only the a state is returned to the component
         | 
| 88 89 | 
             
              const [stateA] = useModel(fooModel, state => state.a);
         | 
| 89 90 |  | 
| 90 91 | 
             
              return <div>{stateA}</div>;
         | 
| @@ -30,7 +30,7 @@ export const foo = model<State>('foo').define({ | |
| 30 30 | 
             
            });
         | 
| 31 31 | 
             
            ```
         | 
| 32 32 |  | 
| 33 | 
            -
            When you declare type information for the State of a Model, the `computed` and `actions` of the Model can get the correct type information. In fact, even if we don't define State type information in the example code above, the type information of State can be automatically inferred based on the initial value information of `state`. However, we still recommend that you declare the type information of State when defining a Model because the type information of State inferred based on the initial value information of `state` may be incomplete (missing fields or field type information), and the type information of State cannot be automatically inferred based on the initial value information of `state` when using [Function Type](/apis/app/runtime/model/model_ | 
| 33 | 
            +
            When you declare type information for the State of a Model, the `computed` and `actions` of the Model can get the correct type information. In fact, even if we don't define State type information in the example code above, the type information of State can be automatically inferred based on the initial value information of `state`. However, we still recommend that you declare the type information of State when defining a Model because the type information of State inferred based on the initial value information of `state` may be incomplete (missing fields or field type information), and the type information of State cannot be automatically inferred based on the initial value information of `state` when using [Function Type](/apis/app/runtime/model/model_#function-type) to define the Model.
         | 
| 34 34 |  | 
| 35 35 | 
             
            ## Dependent types of Derived State
         | 
| 36 36 |  | 
| @@ -78,8 +78,6 @@ function Index() { | |
| 78 78 | 
             
            export default Index;
         | 
| 79 79 | 
             
            ```
         | 
| 80 80 |  | 
| 81 | 
            -
            {/* Todo 重新截图,SSR 内容  */}
         | 
| 82 | 
            -
             | 
| 83 81 | 
             
            Re-execute `pnpm run dev`, view `view-source: http://localhost:8080/`, or view the "Preview" of the HTML request in the Network panel of devtools, you can see that the HTML rendered by SSR already contains the complete UI:
         | 
| 84 82 |  | 
| 85 83 | 
             
            
         | 
| @@ -17,7 +17,13 @@ const tailwind = { | |
| 17 17 | 
             
            };
         | 
| 18 18 | 
             
            ```
         | 
| 19 19 |  | 
| 20 | 
            -
             | 
| 20 | 
            +
            用于修改 [Tailwind CSS](https://tailwindcss.com/docs/configuration) 的配置项。
         | 
| 21 | 
            +
             | 
| 22 | 
            +
            ### 启用 Tailwind CSS
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            在使用 `tools.tailwindcss` 之前,你需要启用 Modern.js 的 Tailwind CSS 插件。
         | 
| 25 | 
            +
             | 
| 26 | 
            +
            请阅读[「使用 Tailwind CSS」](/guides/basic-features/css.html#使用-tailwind-css) 章节来了解开启方式。
         | 
| 21 27 |  | 
| 22 28 | 
             
            ### Function 类型
         | 
| 23 29 |  | 
| @@ -53,6 +59,40 @@ export default { | |
| 53 59 |  | 
| 54 60 | 
             
            ### 注意事项
         | 
| 55 61 |  | 
| 56 | 
            -
             | 
| 62 | 
            +
            注意:
         | 
| 63 | 
            +
             | 
| 64 | 
            +
            - 如果你同时使用了 `tailwind.config.{ts,js}` 文件和 `tools.tailwindcss` 选项,那么 `tools.tailwindcss` 定义的配置会优先生效,并覆盖 `tailwind.config.{ts,js}` 中定义的内容。
         | 
| 65 | 
            +
            - 如果你同时使用了 `source.designSystem` 配置项,那么 Tailwind CSS 的 `theme` 配置将会被 `source.designSystem` 的值所覆盖。
         | 
| 57 66 |  | 
| 58 67 | 
             
            其他配置的使用方式与 Tailwind CSS 官方用法一致,请参考 [tailwindcss - Configuration](https://tailwindcss.com/docs/configuration)。
         | 
| 68 | 
            +
             | 
| 69 | 
            +
            ### 关于 source.designSystem
         | 
| 70 | 
            +
             | 
| 71 | 
            +
            `source.designSystem` 是 Modern.js 中废弃的配置项。
         | 
| 72 | 
            +
             | 
| 73 | 
            +
            从 Modern.js vMAJOR_VERSION.33.0 版本开始,你可以使用 Tailwind CSS 的 `theme` 配置项来代替 `source.designSystem`,不再需要将 `theme` 配置拆分并设置到 `designSystem` 上。
         | 
| 74 | 
            +
             | 
| 75 | 
            +
            - 旧版本用法:
         | 
| 76 | 
            +
             | 
| 77 | 
            +
            ```ts title="modern.config.ts"
         | 
| 78 | 
            +
            const { theme, ...rest } = tailwindConfig;
         | 
| 79 | 
            +
             | 
| 80 | 
            +
            export default {
         | 
| 81 | 
            +
              tools: {
         | 
| 82 | 
            +
                tailwindcss: rest,
         | 
| 83 | 
            +
              },
         | 
| 84 | 
            +
              source: {
         | 
| 85 | 
            +
                designSystem: theme,
         | 
| 86 | 
            +
              },
         | 
| 87 | 
            +
            };
         | 
| 88 | 
            +
            ```
         | 
| 89 | 
            +
             | 
| 90 | 
            +
            - 当前版本用法:
         | 
| 91 | 
            +
             | 
| 92 | 
            +
            ```ts title="modern.config.ts"
         | 
| 93 | 
            +
            export default {
         | 
| 94 | 
            +
              tools: {
         | 
| 95 | 
            +
                tailwindcss: tailwindConfig,
         | 
| 96 | 
            +
              },
         | 
| 97 | 
            +
            };
         | 
| 98 | 
            +
            ```
         | 
| @@ -103,37 +103,46 @@ const App = () => ( | |
| 103 103 |  | 
| 104 104 | 
             
            :::
         | 
| 105 105 |  | 
| 106 | 
            -
            ### Tailwind CSS | 
| 107 | 
            -
             | 
| 108 | 
            -
            Tailwind CSS 官方提供了 [Tailwind CSS IntelliSense](https://github.com/tailwindlabs/tailwindcss-intellisense) 插件,用于在 VS Code 中自动补全 Tailwind CSS 的 class names、CSS functions 和 directives。
         | 
| 106 | 
            +
            ### 配置 Tailwind CSS
         | 
| 109 107 |  | 
| 110 | 
            -
             | 
| 108 | 
            +
            在 Modern.js 中,你有两种方式来配置 Tailwind CSS:
         | 
| 111 109 |  | 
| 112 | 
            -
            1.  | 
| 113 | 
            -
            2. 在项目的根目录创建 `tailwind.config.ts` 文件,并写入你需要的 Tailwind CSS 配置。
         | 
| 110 | 
            +
            1. 使用 `tailwind.config.{ts,js}` 文件,该用法与 Tailwind CSS 的官方用法一致,请参考 ["Tailwind CSS - Configuration"](https://tailwindcss.com/docs/configuration) 来了解更多用法。
         | 
| 114 111 |  | 
| 115 112 | 
             
            ```ts title="tailwind.config.ts"
         | 
| 113 | 
            +
            import type { Config } from 'tailwindcss';
         | 
| 114 | 
            +
             | 
| 116 115 | 
             
            export default {
         | 
| 117 | 
            -
              content: [
         | 
| 118 | 
            -
             | 
| 119 | 
            -
                './config/html/**/*.{html,ejs,hbs}',
         | 
| 120 | 
            -
                './storybook/**/*',
         | 
| 121 | 
            -
              ],
         | 
| 122 | 
            -
            };
         | 
| 116 | 
            +
              content: ['./src/**/*.{js,jsx,ts,tsx}'],
         | 
| 117 | 
            +
            } as Config;
         | 
| 123 118 | 
             
            ```
         | 
| 124 119 |  | 
| 125 | 
            -
             | 
| 120 | 
            +
            :::tip
         | 
| 121 | 
            +
            请升级 Modern.js 到 >= MAJOR_VERSION.33.0 版本,以支持自动读取 `tailwind.config.{ts,js}` 文件。
         | 
| 122 | 
            +
            :::
         | 
| 126 123 |  | 
| 127 | 
            -
             | 
| 128 | 
            -
            import tailwindConfig from './tailwind.config';
         | 
| 124 | 
            +
            2. 使用 [tools.tailwindcss](/configure/app/tools/tailwindcss.html) 配置项,这是旧版本的用法,我们更推荐使用 `tailwind.config.{ts,js}` 文件进行配置。
         | 
| 129 125 |  | 
| 130 | 
            -
             | 
| 126 | 
            +
            ```ts title="modern.config.ts"
         | 
| 127 | 
            +
            export default {
         | 
| 131 128 | 
             
              tools: {
         | 
| 132 | 
            -
                tailwindcss:  | 
| 129 | 
            +
                tailwindcss: {
         | 
| 130 | 
            +
                  content: ['./src/**/*.{js,jsx,ts,tsx}'],
         | 
| 131 | 
            +
                },
         | 
| 133 132 | 
             
              },
         | 
| 134 | 
            -
            } | 
| 133 | 
            +
            };
         | 
| 135 134 | 
             
            ```
         | 
| 136 135 |  | 
| 136 | 
            +
            如果你同时使用了 `tailwind.config.{ts,js}` 文件和 `tools.tailwindcss` 选项,那么 `tools.tailwindcss` 定义的配置会优先生效,并覆盖 `tailwind.config.{ts,js}` 中定义的内容。
         | 
| 137 | 
            +
             | 
| 138 | 
            +
            ### Tailwind CSS 自动补全
         | 
| 139 | 
            +
             | 
| 140 | 
            +
            Tailwind CSS 官方提供了 [Tailwind CSS IntelliSense](https://github.com/tailwindlabs/tailwindcss-intellisense) 插件,用于在 VS Code 中自动补全 Tailwind CSS 的 class names、CSS functions 和 directives。
         | 
| 141 | 
            +
             | 
| 142 | 
            +
            你可以参考以下步骤来启动自动补全功能:
         | 
| 143 | 
            +
             | 
| 144 | 
            +
            1. 在 VS Code 中安装 [Tailwind CSS IntelliSense](https://github.com/tailwindlabs/tailwindcss-intellisense) 插件。
         | 
| 145 | 
            +
            2. 如果项目的根目录没有 `tailwind.config.{ts,js}` 文件,那么你需要创建该文件,并写入当前项目的 Tailwind CSS 配置,否则 IDE 插件将无法正确生效。
         | 
| 137 146 |  | 
| 138 147 | 
             
            ### Tailwind CSS 版本
         | 
| 139 148 |  | 
    
        package/modern.config.ts
    CHANGED
    
    | @@ -133,6 +133,14 @@ export default defineConfig({ | |
| 133 133 | 
             
                  // exclude document fragments from routes
         | 
| 134 134 | 
             
                  exclude: ['scripts/**', '**/zh/components/**', '**/en/components/**'],
         | 
| 135 135 | 
             
                },
         | 
| 136 | 
            +
                replaceRules: [
         | 
| 137 | 
            +
                  {
         | 
| 138 | 
            +
                    // The major version is different inside the ByteDance,
         | 
| 139 | 
            +
                    // so we use a flag to define it.
         | 
| 140 | 
            +
                    search: /MAJOR_VERSION/g,
         | 
| 141 | 
            +
                    replace: '2',
         | 
| 142 | 
            +
                  },
         | 
| 143 | 
            +
                ],
         | 
| 136 144 | 
             
                builderConfig: {
         | 
| 137 145 | 
             
                  output: {
         | 
| 138 146 | 
             
                    disableTsChecker: true,
         | 
    
        package/package.json
    CHANGED
    
    | @@ -15,14 +15,14 @@ | |
| 15 15 | 
             
                "modern",
         | 
| 16 16 | 
             
                "modern.js"
         | 
| 17 17 | 
             
              ],
         | 
| 18 | 
            -
              "version": "2.32.1",
         | 
| 18 | 
            +
              "version": "2.32.2-alpha.1",
         | 
| 19 19 | 
             
              "publishConfig": {
         | 
| 20 20 | 
             
                "registry": "https://registry.npmjs.org/",
         | 
| 21 21 | 
             
                "access": "public",
         | 
| 22 22 | 
             
                "provenance": true
         | 
| 23 23 | 
             
              },
         | 
| 24 24 | 
             
              "peerDependencies": {
         | 
| 25 | 
            -
                "@modern-js/builder-doc": "^2.32.1"
         | 
| 25 | 
            +
                "@modern-js/builder-doc": "^2.32.2-alpha.1"
         | 
| 26 26 | 
             
              },
         | 
| 27 27 | 
             
              "devDependencies": {
         | 
| 28 28 | 
             
                "classnames": "^2",
         | 
| @@ -34,9 +34,9 @@ | |
| 34 34 | 
             
                "fs-extra": "^10",
         | 
| 35 35 | 
             
                "@types/node": "^16",
         | 
| 36 36 | 
             
                "@types/fs-extra": "^9",
         | 
| 37 | 
            -
                "@modern-js/builder-doc": "2.32.1",
         | 
| 38 | 
            -
                "@modern-js/doc-tools": "2.32.1",
         | 
| 39 | 
            -
                "@modern-js/doc-plugin-auto-sidebar": "2.32.1"
         | 
| 37 | 
            +
                "@modern-js/builder-doc": "2.32.2-alpha.1",
         | 
| 38 | 
            +
                "@modern-js/doc-tools": "2.32.2-alpha.1",
         | 
| 39 | 
            +
                "@modern-js/doc-plugin-auto-sidebar": "2.32.2-alpha.1"
         | 
| 40 40 | 
             
              },
         | 
| 41 41 | 
             
              "scripts": {
         | 
| 42 42 | 
             
                "dev": "modern dev",
         |