Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(plugin-tailwind): automatically read tailwind config file #4517

Merged
merged 10 commits into from
Aug 25, 2023

Conversation

chenjiahan
Copy link
Member

@chenjiahan chenjiahan commented Aug 25, 2023

Summary

Ref: #4509

🤖 Generated by Copilot at b81008d

This pull request adds a new feature to the @modern-js/cli/plugin-tailwind package, which allows users to customize the tailwind CSS configuration using a tailwind.config.{ts,js} file in the project root directory. It also updates the documentation and the tests to reflect this change. It refactors some code and types to improve the modularity and readability of the package. It adds a dependency to the @modern-js/node-bundle-require package, which is used to bundle and require the tailwind config file. It adds a changeset file to generate a patch-level update message for the package.

Details

🤖 Generated by Copilot at b81008d

  • Add a markdown file to generate changelog and version bump for @modern-js/plugin-tailwindcss package (link)
  • Add a dependency to @modern-js/node-bundle-require package in @modern-js/cli/plugin-tailwind package (link)
  • Refactor the cli.ts file of @modern-js/cli/plugin-tailwind package to use the new loadConfigFile and getTailwindConfig functions from the config.ts file, and update the import and export of the designTokenPlugin function (link, link, link, link, link, link, link, link)
  • Add a new config.ts file to @modern-js/cli/plugin-tailwind package that exports the loadConfigFile and getTailwindConfig functions, which handle the logic of finding, requiring, and merging the tailwind configuration sources (link)
  • Move some utility functions and constants related to the twin macro feature from the utils.ts file to a new macro.ts file in @modern-js/cli/plugin-tailwind package for better modularity and readability (link, link)
  • Rename and update the type definitions in the types.ts file of @modern-js/cli/plugin-tailwind package to reflect the new tailwind configuration sources and structure (link)
  • Modify the documentation in the app/tools/tailwindcss.mdx and basic-features/css.mdx files of @modern-js/document/main-doc package, both in English and Chinese, to explain the new feature of using the tailwind.config.{ts,js} file and the priority and override of the tailwind configuration sources (link, link, link, link, link)
  • Add a replaceRules option to the modern.config.ts file of @modern-js/document/main-doc package, which is used to replace the FRAMEWORK_MAJOR_VERSION flag with the actual framework major version (link)
  • Rename and delete some test files in the tests/integration directory to match the new tailwind configuration feature and structure (link, link, link, link, link)
  • Delete the tailwind.ts file from @modern-js/cli/plugin-tailwind package, as its content has been moved to the config.ts file (link)

Related Issue

Checklist

  • I have added changeset via pnpm run change.
  • I have updated the documentation.
  • I have added tests to cover my changes.

@changeset-bot
Copy link

changeset-bot bot commented Aug 25, 2023

🦋 Changeset detected

Latest commit: 4829d7e

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 268 packages
Name Type
@modern-js/plugin-tailwindcss Patch
@modern-js/doc-core Patch
integration-tailwindcss-v2 Patch
integration-tailwindcss-v3-js-config Patch
integration-tailwindcss-v3-merge-config Patch
integration-tailwindcss-v3-ts-config Patch
integration-tailwindcss-v3 Patch
twin-macro-v2 Patch
twin-macro-v3 Patch
@modern-js/babel-preset-app Patch
@modern-js/babel-preset-base Patch
@modern-js/core Patch
@modern-js/doc-plugin-api-docgen Patch
@modern-js/doc-plugin-auto-sidebar Patch
@modern-js/doc-plugin-medium-zoom Patch
@modern-js/doc-plugin-preview Patch
@modern-js/doc-plugin-typedoc Patch
@modern-js/plugin-bff Patch
@modern-js/plugin-changeset Patch
@modern-js/plugin-data-loader Patch
@modern-js/plugin-i18n Patch
@modern-js/plugin-lint Patch
@modern-js/plugin-proxy Patch
@modern-js/plugin-ssg Patch
@modern-js/plugin-storybook Patch
@modern-js/plugin-swc Patch
@modern-js/builder-doc Patch
@modern-js/doc-tools-doc Patch
@modern-js/main-doc Patch
@modern-js/module-tools-docs Patch
@modern-js/devtools-client Patch
@modern-js/devtools-mount Patch
@modern-js/plugin-devtools Patch
@modern-js/plugin-garfish Patch
@modern-js/plugin-router-v5 Patch
@modern-js/runtime Patch
@modern-js/plugin-testing Patch
@modern-js/new-action Patch
@modern-js-app/eslint-config Patch
@modern-js/eslint-config Patch
@modern-js/tsconfig Patch
@modern-js/babel-plugin-module-resolver Patch
@modern-js/bff-core Patch
@modern-js/bff-runtime Patch
@modern-js/server-core Patch
@modern-js/create-request Patch
@modern-js/plugin-express Patch
@modern-js/plugin-koa Patch
@modern-js/plugin-polyfill Patch
@modern-js/plugin-server Patch
@modern-js/plugin-worker Patch
@modern-js/prod-server Patch
@modern-js/server Patch
@modern-js/server-utils Patch
@modern-js/builder-cli Patch
@modern-js/builder-rspack-provider Patch
@modern-js/builder-shared Patch
@modern-js/builder-webpack-provider Patch
@modern-js/builder Patch
@modern-js/friendly-errors-webpack-plugin Patch
@modern-js/builder-plugin-esbuild Patch
@modern-js/builder-plugin-image-compress Patch
@modern-js/builder-plugin-node-polyfill Patch
@modern-js/builder-plugin-stylus Patch
@modern-js/builder-plugin-swc Patch
@modern-js/builder-plugin-vue Patch
@modern-js/builder-plugin-vue2 Patch
@modern-js/libuild Patch
@modern-js/libuild-plugin-babel Patch
@modern-js/libuild-plugin-node-polyfill Patch
@modern-js/libuild-plugin-svgr Patch
@modern-js/libuild-plugin-swc Patch
@modern-js/libuild-utils Patch
@modern-js/plugin-module-babel Patch
@modern-js/plugin-module-banner Patch
@modern-js/plugin-module-doc Patch
@modern-js/plugin-module-import Patch
@modern-js/plugin-module-main-fields Patch
@modern-js/plugin-module-node-polyfill Patch
@modern-js/plugin-module-polyfill Patch
@modern-js/plugin-module-target Patch
@modern-js/app-tools Patch
@modern-js/doc-tools Patch
@modern-js/module-tools Patch
@modern-js/monorepo-tools Patch
@modern-js/create Patch
@modern-js/e2e Patch
@modern-js/monorepo-utils Patch
@modern-js/node-bundle-require Patch
@modern-js/plugin Patch
@modern-js/remark-container Patch
@modern-js/types Patch
@modern-js/upgrade Patch
@modern-js/utils Patch
@modern-js/babel-compiler Patch
@scripts/build Patch
@scripts/check-changeset Patch
@scripts/jest-config Patch
@scripts/lint-package-json Patch
@scripts/prebundle Patch
@scripts/update-codesmith Patch
@scripts/vitest-config Patch
tests Patch
@integration-test/alias-set Patch
api-service-koa Patch
app-docmuent Patch
integration-asset-prefix Patch
async-entry-test Patch
bff-express Patch
bff-koa Patch
integration-builder-plugins Patch
builder-rspack Patch
integration-clean-dist-path Patch
integration-compatibility Patch
integration-copy-assets Patch
integration-custom-render Patch
integration-custom-template Patch
dev-server Patch
@integration-test/devtools Patch
integration-disable-html Patch
simple-doc-template Patch
i18n-doc Patch
doc-plugin Patch
simple-doc-production Patch
with-base Patch
doc-tools Patch
legacy-esbuild-minify-js Patch
esbuild-transform-and-minify Patch
esbuild-integration Patch
browser-test Patch
lib1 Patch
lib2 Patch
lib3 Patch
antd-mobile Patch
mylib Patch
libuild-test Patch
integration-config-async-config-test Patch
integration-basic-local-config Patch
integration-config-function-params Patch
integration-local-config-function Patch
integration-load-config Patch
main-entry-name Patch
integration-module-doc Patch
integration-module-tools Patch
alias-js-test Patch
alias-ts-test Patch
asset-path-test Patch
auto-external-test Patch
build-platform-test Patch
build-preset-error-test Patch
build-preset-function-test Patch
build-preset-test Patch
build-preset-string-test Patch
build-type-test Patch
copy-test Patch
decorator-test Patch
design-system-test Patch
dev-test Patch
dts-test Patch
entry-test Patch
esbuild-options-test Patch
external-test Patch
format-cjs-test Patch
format-esm-test Patch
format-iife-test Patch
format-umd-test Patch
global-vars-js-test Patch
global-vars-ts-test Patch
input-filter-test Patch
jsx-test Patch
metafile-test Patch
minify-test Patch
platform-test Patch
redirect-test Patch
module-tools-side-effects-test Patch
source-dir-test Patch
sourcemap-test Patch
splitting-test Patch
svgr-test Patch
target-test Patch
tools-test Patch
transform-lodash Patch
umdGlobals-test Patch
get-module-id-test Patch
builder-test Patch
build-watch-test Patch
tmp Patch
nonce Patch
routes Patch
file-based-router Patch
use-loader Patch
runtime Patch
select-mul-entry-test Patch
select-one-entry-test Patch
entry Patch
server-config Patch
server-middleware Patch
server-hook-reqeust Patch
server-hook-response Patch
server-hook-router Patch
@integration-test/server-hook-reqeust Patch
server-prod Patch
@source-code-build/app-ts-loader Patch
@source-code-build/app Patch
@source-code-build/common Patch
@source-code-build/components Patch
@source-code-build/utils Patch
ssg-fixtures-nested-routes Patch
ssg-fixtures-simple Patch
ssg-fixtures-web-server Patch
ssg Patch
ssr-base-json-test Patch
ssr-base-test Patch
ssr-base-fallback-test Patch
init Patch
ssr-preload Patch
ssr-streaming-test Patch
ssr Patch
swc-minify-css Patch
swc-minify-js Patch
transform-fail Patch
swc-integration Patch
tailwindcss-integration-test Patch
tmp-dir Patch
write-to-dist Patch
@e2e/builder-cli-rspack Patch
@e2e/builder-cli-vue Patch
@e2e/builder-cli-webpack Patch
@e2e/webpack-builder-import-antd-v4 Patch
@e2e/webpack-builder-import-antd-v5 Patch
@e2e/webpack-builder-import-arco Patch
@e2e/webpack-builder-test-moment Patch
@e2e/builder-remove-prop-types Patch
@e2e/builder-vue3 Patch
@e2e/builder-vue2 Patch
@e2e/builder Patch
@e2e/garfish-dashboard-router-v6 Patch
@e2e/garfish-dashboard Patch
@e2e/garfish-main-router-v6 Patch
@e2e/garfish-main Patch
@e2e/garfish-table Patch
@e2e/garfish Patch
@modern-js/generator-common Patch
@modern-js/generator-plugin Patch
@modern-js/generator-utils Patch
@modern-js/bff-generator Patch
@modern-js/dependence-generator Patch
@modern-js/doc-generator Patch
@modern-js/entry-generator Patch
@modern-js/generator-generator Patch
@modern-js/module-generator Patch
@modern-js/module-test-generator Patch
@modern-js/monorepo-generator Patch
@modern-js/mwa-generator Patch
@modern-js/router-v5-generator Patch
@modern-js/rspack-generator Patch
@modern-js/ssg-generator Patch
@modern-js/storybook-generator Patch
@modern-js/test-generator Patch
@modern-js/upgrade-generator Patch
@modern-js/generator-plugin-plugin Patch
@modern-js/repo-generator Patch
@modern-js/generator-cases Patch
@modern-js/base-generator Patch
@modern-js/changeset-generator Patch
@modern-js/packages-generator Patch
@modern-js/server-generator Patch
@modern-js/tailwindcss-generator Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@codecov
Copy link

codecov bot commented Aug 25, 2023

Codecov Report

Patch coverage has no change and project coverage change: -5.60% ⚠️

Comparison is base (99693f0) 57.59% compared to head (4829d7e) 51.99%.
Report is 1041 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4517      +/-   ##
==========================================
- Coverage   57.59%   51.99%   -5.60%     
==========================================
  Files         672      673       +1     
  Lines       17794    18439     +645     
  Branches     3876     4275     +399     
==========================================
- Hits        10249     9588     -661     
- Misses       6934     8160    +1226     
- Partials      611      691      +80     

see 452 files with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@chenjiahan chenjiahan merged commit fd2ca58 into web-infra-dev:main Aug 25, 2023
8 checks passed
@chenjiahan chenjiahan deleted the read_tailwindcss_config_0825 branch August 25, 2023 08:24
@caohuilin caohuilin mentioned this pull request Aug 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants