From 81d1e9ea779f0ba5169ac06d9a943ba08314573b Mon Sep 17 00:00:00 2001 From: g45t345rt Date: Wed, 31 Mar 2021 13:56:28 -0400 Subject: [PATCH] New watch css files with simple file edit test --- dist/index.esm.js | 1 + dist/index.js | 1 + package.json | 6 +++--- src/index.ts | 1 + test/index.js | 35 +++++++++++++++++++++++++++++++++- test/styles/preprocessors.less | 6 ++---- test/styles/watch.css | 3 +++ test/tests/watch.ts | 1 + yarn.lock | 24 +++++++++++------------ 9 files changed, 58 insertions(+), 20 deletions(-) create mode 100644 test/styles/watch.css create mode 100644 test/tests/watch.ts diff --git a/dist/index.esm.js b/dist/index.esm.js index 224e51a..172a837 100644 --- a/dist/index.esm.js +++ b/dist/index.esm.js @@ -64,6 +64,7 @@ const postCSSPlugin = ({ return { namespace: isModule ? "postcss-module" : "file", path: tmpFilePath, + watchFiles: [sourceFullPath], pluginData: { originalPath: sourceFullPath } diff --git a/dist/index.js b/dist/index.js index d2883f5..cd5588d 100644 --- a/dist/index.js +++ b/dist/index.js @@ -90,6 +90,7 @@ const postCSSPlugin = ({ return { namespace: isModule ? "postcss-module" : "file", path: tmpFilePath, + watchFiles: [sourceFullPath], pluginData: { originalPath: sourceFullPath } diff --git a/package.json b/package.json index 35fea74..1ec2c69 100644 --- a/package.json +++ b/package.json @@ -39,16 +39,16 @@ }, "devDependencies": { "@types/chai": "^4.2.15", - "@types/fs-extra": "^9.0.8", + "@types/fs-extra": "^9.0.9", "@types/less": "^3.0.2", "@types/mocha": "^8.2.2", - "@types/node": "^14.14.35", + "@types/node": "^14.14.37", "@types/sass": "^1.16.0", "@types/stylus": "^0.48.33", "@types/tmp": "^0.2.0", "chai": "^4.3.4", "cross-env": "^7.0.3", - "esbuild": "^0.9.6", + "esbuild": "^0.11.2", "mocha": "^8.3.2", "normalize.css": "^8.0.1", "prettier": "^2.2.1", diff --git a/src/index.ts b/src/index.ts index 721df76..11f67b4 100644 --- a/src/index.ts +++ b/src/index.ts @@ -117,6 +117,7 @@ const postCSSPlugin = ({ return { namespace: isModule ? "postcss-module" : "file", path: tmpFilePath, + watchFiles: [sourceFullPath], pluginData: { originalPath: sourceFullPath } diff --git a/test/index.js b/test/index.js index be96fd3..53c2a56 100644 --- a/test/index.js +++ b/test/index.js @@ -1,7 +1,8 @@ const autoprefixer = require("autoprefixer"), { build } = require("esbuild"), postCSS = require("../dist"), - { assert } = require("chai"); + { assert } = require("chai"), + fs = require("fs"); describe("PostCSS esbuild tests", () => { it("Works with basic CSS imports", (done) => { @@ -44,6 +45,38 @@ describe("PostCSS esbuild tests", () => { }) .catch(done); }); + it("Works while waching css files", (done) => { + let notTriggerTimeout = null; + build({ + entryPoints: ["tests/watch.ts"], + bundle: true, + outdir: "dist", + watch: { + onRebuild: (error, result) => { + notTriggerTimeout = null; + if (error) return done(error); + assert(result); + done(); + } + }, + plugins: [ + postCSS.default({ + plugins: [autoprefixer] + }) + ] + }) + .then(() => { + // test if modifying the css actually triggers the onRebuild event + const data = `.Test { display: block; }`; + fs.writeFile("./styles/watch.css", data, (err) => { + if (err) return done(err); + notTriggerTimeout = setTimeout(() => { + done("Watch file not triggered!"); + }, 1000); + }); + }) + .catch(() => process.exit(1)); + }); }); function test(entryPoint) { diff --git a/test/styles/preprocessors.less b/test/styles/preprocessors.less index 5bcf682..55d7059 100644 --- a/test/styles/preprocessors.less +++ b/test/styles/preprocessors.less @@ -1,5 +1,3 @@ -@test: 2em; - -.LessClass { - height: @test; +.Test { + display: block; } diff --git a/test/styles/watch.css b/test/styles/watch.css new file mode 100644 index 0000000..55d7059 --- /dev/null +++ b/test/styles/watch.css @@ -0,0 +1,3 @@ +.Test { + display: block; +} diff --git a/test/tests/watch.ts b/test/tests/watch.ts new file mode 100644 index 0000000..4a34187 --- /dev/null +++ b/test/tests/watch.ts @@ -0,0 +1 @@ +import "../styles/watch.css"; diff --git a/yarn.lock b/yarn.lock index 6ec96ca..0eb2e7b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,10 +7,10 @@ "resolved" "https://registry.npmjs.org/@types/chai/-/chai-4.2.15.tgz" "version" "4.2.15" -"@types/fs-extra@^9.0.8": - "integrity" "sha512-bnlTVTwq03Na7DpWxFJ1dvnORob+Otb8xHyUqUWhqvz/Ksg8+JXPlR52oeMSZ37YEOa5PyccbgUNutiQdi13TA==" - "resolved" "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.8.tgz" - "version" "9.0.8" +"@types/fs-extra@^9.0.9": + "integrity" "sha512-5TqDycCl0oMzwzd1cIjSJWMKMvLCDVErle4ZTjU4EmHDURR/+yZghe6GDHMCpHtcVfq0x0gMoOM546/5TbYHrg==" + "resolved" "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.9.tgz" + "version" "9.0.9" dependencies: "@types/node" "*" @@ -24,10 +24,10 @@ "resolved" "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.2.tgz" "version" "8.2.2" -"@types/node@*", "@types/node@^14.14.35": - "integrity" "sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag==" - "resolved" "https://registry.npmjs.org/@types/node/-/node-14.14.35.tgz" - "version" "14.14.35" +"@types/node@*", "@types/node@^14.14.37": + "integrity" "sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw==" + "resolved" "https://registry.npmjs.org/@types/node/-/node-14.14.37.tgz" + "version" "14.14.37" "@types/sass@^1.16.0": "integrity" "sha512-2XZovu4NwcqmtZtsBR5XYLw18T8cBCnU2USFHTnYLLHz9fkhnoEMoDsqShJIOFsFhn5aJHjweiUUdTrDGujegA==" @@ -374,10 +374,10 @@ dependencies: "prr" "~1.0.1" -"esbuild@^0.9.6": - "integrity" "sha512-F6vASxU0wT/Davt9aj2qtDwDNSkQxh9VbyO56M7PDWD+D/Vgq/rmUDGDQo7te76W5auauVojjnQr/wTu3vpaUA==" - "resolved" "https://registry.npmjs.org/esbuild/-/esbuild-0.9.6.tgz" - "version" "0.9.6" +"esbuild@^0.11.2": + "integrity" "sha512-8d5FCQrR+juXC2u9zjTQ3+IYiuFuaWyKYwmApFJLquTrYNbk36H/+MkRQeTuOJg7IjUchRX2Ulwo1zRYXZ1pUg==" + "resolved" "https://registry.npmjs.org/esbuild/-/esbuild-0.11.2.tgz" + "version" "0.11.2" "escalade@^3.1.1": "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="