New watch css files with simple file edit test

This commit is contained in:
g45t345rt 2021-03-31 13:56:28 -04:00
parent b92e8deb80
commit 81d1e9ea77
9 changed files with 58 additions and 20 deletions

1
dist/index.esm.js vendored
View File

@ -64,6 +64,7 @@ const postCSSPlugin = ({
return {
namespace: isModule ? "postcss-module" : "file",
path: tmpFilePath,
watchFiles: [sourceFullPath],
pluginData: {
originalPath: sourceFullPath
}

1
dist/index.js vendored
View File

@ -90,6 +90,7 @@ const postCSSPlugin = ({
return {
namespace: isModule ? "postcss-module" : "file",
path: tmpFilePath,
watchFiles: [sourceFullPath],
pluginData: {
originalPath: sourceFullPath
}

View File

@ -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",

View File

@ -117,6 +117,7 @@ const postCSSPlugin = ({
return {
namespace: isModule ? "postcss-module" : "file",
path: tmpFilePath,
watchFiles: [sourceFullPath],
pluginData: {
originalPath: sourceFullPath
}

View File

@ -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) {

View File

@ -1,5 +1,3 @@
@test: 2em;
.LessClass {
height: @test;
.Test {
display: block;
}

3
test/styles/watch.css Normal file
View File

@ -0,0 +1,3 @@
.Test {
display: block;
}

1
test/tests/watch.ts Normal file
View File

@ -0,0 +1 @@
import "../styles/watch.css";

View File

@ -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=="