Add Gulp script to create a dist archive

This commit is contained in:
bjoluc 2021-08-09 09:35:48 +02:00
parent c119650471
commit 559f60c83e
4 changed files with 8712 additions and 6 deletions

1
.gitignore vendored
View File

@ -8,3 +8,4 @@ site/
dist/ dist/
coverage/ coverage/
.vscode/ .vscode/
dist.zip

49
gulpfile.js Normal file
View File

@ -0,0 +1,49 @@
import gulp from "gulp";
import rename from "gulp-rename";
import replace from "gulp-replace";
import zip from "gulp-zip";
import merge from "merge-stream";
const { dest, src } = gulp;
export const createDistArchive = () =>
merge(
// index.browser.js files
src("packages/*/dist/index.browser.js", { root: "packages/" })
// Rename dist files
.pipe(
rename((path) => {
const packageName = path.dirname.split("/")[0];
path.dirname = "/dist";
path.basename = packageName;
})
)
// Remove sourceMappingURL comments
.pipe(replace(/\/\/# sourceMappingURL=.*\n/g, "")),
// jspsych.css
src("packages/jspsych/css/jspsych.css").pipe(rename("/dist/jspsych.css")),
// Examples
src("examples/**/*", { base: "." })
// Rewrite script source paths
.pipe(
replace(
/<script src="(.*)\/packages\/(.*)\/dist\/index\.browser\.js"><\/script>/g,
'<script src="$1/dist/$2.js"></script>'
)
)
// Rewrite jspsych css source paths
.pipe(
replace(
/<link rel="stylesheet" href="(.*)\/packages\/jspsych\/css\/(.*)" \/>/g,
'<link rel="stylesheet" href="$1/dist/$2" />'
)
),
// Other files
src(["*.md", "license.txt"])
)
.pipe(zip("dist.zip"))
.pipe(dest("."));

8659
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,11 +1,13 @@
{ {
"private": true, "private": true,
"type": "module",
"workspaces": [ "workspaces": [
"packages/*" "packages/*"
], ],
"scripts": { "scripts": {
"test": "jest", "test": "jest",
"build": "npm run build -ws", "build": "npm run build -ws",
"build:archive": "gulp createDistArchive",
"prepare": "npm run build", "prepare": "npm run build",
"tsc": "npm run tsc -ws" "tsc": "npm run tsc -ws"
}, },
@ -16,11 +18,18 @@
"@rollup/plugin-commonjs": "^19.0.0", "@rollup/plugin-commonjs": "^19.0.0",
"@rollup/plugin-json": "^4.1.0", "@rollup/plugin-json": "^4.1.0",
"@rollup/plugin-node-resolve": "^13.0.0", "@rollup/plugin-node-resolve": "^13.0.0",
"@types/gulp": "^4.0.9",
"@types/jest": "^26.0.23", "@types/jest": "^26.0.23",
"canvas": "^2.8.0", "canvas": "^2.8.0",
"gulp": "^4.0.2",
"gulp-cli": "^2.3.0",
"gulp-rename": "^2.0.0",
"gulp-replace": "^1.1.3",
"gulp-zip": "^5.1.0",
"import-sort-style-module": "^6.0.0", "import-sort-style-module": "^6.0.0",
"jest": "^27.0.6", "jest": "^27.0.6",
"jest-environment-jsdom": "^27.0.6", "jest-environment-jsdom": "^27.0.6",
"merge-stream": "^2.0.0",
"prettier": "^2.3.2", "prettier": "^2.3.2",
"prettier-plugin-import-sort": "^0.0.7", "prettier-plugin-import-sort": "^0.0.7",
"rollup": "^2.52.7", "rollup": "^2.52.7",