From f02f961f955277469b971cd35ffdb26d5fa95784 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Wouts?= Date: Thu, 3 Mar 2022 09:31:45 +0000 Subject: [PATCH] fix: update postcss-load-config to load PostCSS plugins based on their config file path (#6856) --- .npmrc | 7 ++++ .../backend-integration/package.json | 3 ++ .../postcss-plugins-different-dir.spec.ts | 29 +++++++++++++++++ packages/playground/css/package.json | 1 + packages/playground/legacy/package.json | 3 +- .../multiple-entrypoints/package.json | 4 +++ .../playground/tailwind/src/views/Page.vue | 4 ++- packages/playground/testUtils.ts | 5 +++ packages/playground/vue/public/favicon.ico | Bin 0 -> 4286 bytes packages/vite/LICENSE.md | 2 +- packages/vite/package.json | 2 +- pnpm-lock.yaml | 30 ++++++++++++------ 12 files changed, 77 insertions(+), 13 deletions(-) create mode 100644 .npmrc create mode 100644 packages/playground/css/__tests__/postcss-plugins-different-dir.spec.ts create mode 100644 packages/playground/vue/public/favicon.ico diff --git a/.npmrc b/.npmrc new file mode 100644 index 00000000000000..4abbb42e5ef159 --- /dev/null +++ b/.npmrc @@ -0,0 +1,7 @@ +hoist-pattern[]=*eslint* +hoist-pattern[]=*babel* +hoist-pattern[]=*jest* +hoist-pattern[]=@emotion/* +hoist-pattern[]=postcss +hoist-pattern[]=pug +hoist-pattern[]=source-map-support diff --git a/packages/playground/backend-integration/package.json b/packages/playground/backend-integration/package.json index afbdb63d356a8b..b3d9b064db16e2 100644 --- a/packages/playground/backend-integration/package.json +++ b/packages/playground/backend-integration/package.json @@ -10,5 +10,8 @@ }, "dependencies": { "tailwindcss": "^2.2.19" + }, + "devDependencies": { + "fast-glob": "^3.2.11" } } diff --git a/packages/playground/css/__tests__/postcss-plugins-different-dir.spec.ts b/packages/playground/css/__tests__/postcss-plugins-different-dir.spec.ts new file mode 100644 index 00000000000000..48500740b64613 --- /dev/null +++ b/packages/playground/css/__tests__/postcss-plugins-different-dir.spec.ts @@ -0,0 +1,29 @@ +import { getColor, getBgColor } from '../../testUtils' +import { createServer } from 'vite' +import path from 'path' + +// Regression test for https://github.com/vitejs/vite/issues/4000 +test('postcss plugins in different dir', async () => { + const port = 5005 + const server = await createServer({ + root: path.join(__dirname, '..', '..', 'tailwind'), + logLevel: 'silent', + server: { + port, + strictPort: true + }, + build: { + // skip transpilation during tests to make it faster + target: 'esnext' + } + }) + await server.listen() + try { + await page.goto(`http://localhost:${port}`) + const tailwindStyle = await page.$('.tailwind-style') + expect(await getBgColor(tailwindStyle)).toBe('rgb(254, 226, 226)') + expect(await getColor(tailwindStyle)).toBe('rgb(136, 136, 136)') + } finally { + await server.close() + } +}) diff --git a/packages/playground/css/package.json b/packages/playground/css/package.json index 13a58874578c09..b45063100be089 100644 --- a/packages/playground/css/package.json +++ b/packages/playground/css/package.json @@ -10,6 +10,7 @@ }, "devDependencies": { "css-dep": "link:./css-dep", + "fast-glob": "^3.2.11", "less": "^4.1.2", "postcss-nested": "^5.0.6", "sass": "^1.43.4", diff --git a/packages/playground/legacy/package.json b/packages/playground/legacy/package.json index 177aa5a0a5078b..3a3315c42aa832 100644 --- a/packages/playground/legacy/package.json +++ b/packages/playground/legacy/package.json @@ -10,6 +10,7 @@ "preview": "vite preview" }, "devDependencies": { - "@vitejs/plugin-legacy": "workspace:*" + "@vitejs/plugin-legacy": "workspace:*", + "express": "^4.17.1" } } diff --git a/packages/playground/multiple-entrypoints/package.json b/packages/playground/multiple-entrypoints/package.json index 7b4dab889c472e..6c338a64518ddb 100644 --- a/packages/playground/multiple-entrypoints/package.json +++ b/packages/playground/multiple-entrypoints/package.json @@ -7,5 +7,9 @@ "build": "vite build", "debug": "node --inspect-brk ../../vite/bin/vite", "preview": "vite preview" + }, + "devDependencies": { + "fast-glob": "^3.2.11", + "sass": "^1.43.4" } } diff --git a/packages/playground/tailwind/src/views/Page.vue b/packages/playground/tailwind/src/views/Page.vue index ec59b44238c733..764a2a18e54fdb 100644 --- a/packages/playground/tailwind/src/views/Page.vue +++ b/packages/playground/tailwind/src/views/Page.vue @@ -2,7 +2,9 @@

|Page title|

{{ val }}
-
+
Tailwind style
diff --git a/packages/playground/testUtils.ts b/packages/playground/testUtils.ts index 0ae0c6e8766e95..0c8186d4ed121d 100644 --- a/packages/playground/testUtils.ts +++ b/packages/playground/testUtils.ts @@ -64,6 +64,11 @@ export async function getBg(el: string | ElementHandle): Promise { return el.evaluate((el) => getComputedStyle(el as Element).backgroundImage) } +export async function getBgColor(el: string | ElementHandle): Promise { + el = await toEl(el) + return el.evaluate((el) => getComputedStyle(el as Element).backgroundColor) +} + export function readFile(filename: string): string { return fs.readFileSync(path.resolve(testDir, filename), 'utf-8') } diff --git a/packages/playground/vue/public/favicon.ico b/packages/playground/vue/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..df36fcfb72584e00488330b560ebcf34a41c64c2 GIT binary patch literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S literal 0 HcmV?d00001 diff --git a/packages/vite/LICENSE.md b/packages/vite/LICENSE.md index 8b4d641a09f199..107329e4f89e81 100644 --- a/packages/vite/LICENSE.md +++ b/packages/vite/LICENSE.md @@ -3088,7 +3088,7 @@ Repository: https://github.com/postcss/postcss-import.git ## postcss-load-config License: MIT -By: Michael Ciniawky, Ryan Dunckel, Mateusz Derks, Dalton Santos, Patrick Gilday +By: Michael Ciniawky, Ryan Dunckel, Mateusz Derks, Dalton Santos, Patrick Gilday, François Wouts Repository: postcss/postcss-load-config > The MIT License (MIT) diff --git a/packages/vite/package.json b/packages/vite/package.json index 2e0baac210a650..f790184bf765f2 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -104,7 +104,7 @@ "periscopic": "^2.0.3", "picocolors": "^1.0.0", "postcss-import": "^14.0.2", - "postcss-load-config": "^3.1.1", + "postcss-load-config": "^3.1.3", "postcss-modules": "^4.3.0", "resolve.exports": "^1.1.0", "rollup-plugin-license": "^2.6.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0b5ce9e20bf63b..b7a9a8e96dc686 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -115,9 +115,12 @@ importers: packages/playground/backend-integration: specifiers: + fast-glob: ^3.2.11 tailwindcss: ^2.2.19 dependencies: tailwindcss: 2.2.19_ts-node@10.4.0 + devDependencies: + fast-glob: 3.2.11 packages/playground/cli: specifiers: {} @@ -128,12 +131,14 @@ importers: packages/playground/css: specifiers: css-dep: link:./css-dep + fast-glob: ^3.2.11 less: ^4.1.2 postcss-nested: ^5.0.6 sass: ^1.43.4 stylus: ^0.55.0 devDependencies: css-dep: link:css-dep + fast-glob: 3.2.11 less: 4.1.2 postcss-nested: 5.0.6 sass: 1.45.1 @@ -215,14 +220,21 @@ importers: packages/playground/legacy: specifiers: '@vitejs/plugin-legacy': workspace:* + express: ^4.17.1 devDependencies: '@vitejs/plugin-legacy': link:../../plugin-legacy + express: 4.17.2 packages/playground/lib: specifiers: {} packages/playground/multiple-entrypoints: - specifiers: {} + specifiers: + fast-glob: ^3.2.11 + sass: ^1.43.4 + devDependencies: + fast-glob: 3.2.11 + sass: 1.45.1 packages/playground/nested-deps: specifiers: @@ -797,7 +809,7 @@ importers: picocolors: ^1.0.0 postcss: ^8.4.6 postcss-import: ^14.0.2 - postcss-load-config: ^3.1.1 + postcss-load-config: ^3.1.3 postcss-modules: ^4.3.0 resolve: ^1.22.0 resolve.exports: ^1.1.0 @@ -872,7 +884,7 @@ importers: periscopic: 2.0.3 picocolors: 1.0.0 postcss-import: 14.0.2_postcss@8.4.6 - postcss-load-config: 3.1.1_ts-node@10.4.0 + postcss-load-config: 3.1.3_ts-node@10.4.0 postcss-modules: 4.3.0_postcss@8.4.6 resolve.exports: 1.1.0 rollup-plugin-license: 2.6.1_rollup@2.62.0 @@ -4816,7 +4828,6 @@ packages: glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.4 - dev: true /fast-glob/3.2.7: resolution: {integrity: sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==} @@ -4827,6 +4838,7 @@ packages: glob-parent: 5.1.2 merge2: 1.4.1 micromatch: 4.0.4 + dev: true /fast-json-stable-stringify/2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -6145,7 +6157,7 @@ packages: '@types/node': 16.11.22 chalk: 4.1.2 ci-info: 3.3.0 - graceful-fs: 4.2.8 + graceful-fs: 4.2.9 picomatch: 2.3.0 dev: true @@ -7355,8 +7367,8 @@ packages: yaml: 1.10.2 dev: false - /postcss-load-config/3.1.1_ts-node@10.4.0: - resolution: {integrity: sha512-c/9XYboIbSEUZpiD1UQD0IKiUe8n9WHYV7YFe7X7J+ZwCsEKkUJSFWjS9hBU1RR9THR7jMXst8sxiqP0jjo2mg==} + /postcss-load-config/3.1.3_ts-node@10.4.0: + resolution: {integrity: sha512-5EYgaM9auHGtO//ljHH+v/aC/TQ5LHXtL7bQajNAUBKUVKiYE8rYpFms7+V26D9FncaGe2zwCoPQsFKb5zF/Hw==} engines: {node: '>= 10'} peerDependencies: ts-node: '>=9.0.0' @@ -8616,7 +8628,7 @@ packages: detective: 5.2.0 didyoumean: 1.2.2 dlv: 1.1.3 - fast-glob: 3.2.7 + fast-glob: 3.2.11 fs-extra: 10.0.0 glob-parent: 6.0.2 html-tags: 3.1.0 @@ -8660,7 +8672,7 @@ packages: detective: 5.2.0 didyoumean: 1.2.2 dlv: 1.1.3 - fast-glob: 3.2.7 + fast-glob: 3.2.11 fs-extra: 10.0.0 glob-parent: 6.0.2 html-tags: 3.1.0