Migrate build system from Webpack to Parcel (#1102)

* Migrate webpack to parcel

* Always colour shell output

* Fix typos

* Fix updateImage function having undefined editorInstance

* Readd webpack for deployment builds (licence checker)

* Only use webpack for license generation

* Re add typscript support

* Fix cloudlare deploy

* Bump wasm-pack version

* Update ci script

* Print versions in ci script

* Use optional-dependencies for wasm-pack

* Execute wget after rust install

* Finding wasm-opt version

* Print wasm-opt version

* Revert test?

* Try to revert

* Deploy cloudflare via github actions

* Fix indentation in ci script

* Change project to graphite-dev

* Trigger ci

* Parcel ci (#1152)

* CI Test

* Add write permissions for pr

* Manually add cloudflare ci comment to prs

* Unskip cargo about

* Make compile on new versions of npm

* Add deployment script to rebuild editor.graphite.rs on tag creation

* Remove deploy script

* Comment out unused Svelte props causing warnings

* Many small fixes, including fixing @ imports

---------

Co-authored-by: hypercube <0hypercube@gmail.com>
Co-authored-by: Keavon Chambers <keavon@keavon.com>
This commit is contained in:
Dennis Kobert
2023-04-25 00:43:27 +02:00
committed by GitHub
co-authored by hypercube Keavon Chambers
parent b0a3632868
commit 1180b19284
29 changed files with 4532 additions and 7616 deletions
+32 -33
View File
@@ -3,17 +3,24 @@
"private": true,
"description": "Graphite's web app frontend. Planned to be replaced by a native GUI written in Rust in the future.",
"author": "Graphite Authors <contact@graphite.rs>",
"browserslist": "> 1.5%, last 2 versions, not dead, not ie 11, not op_mini all, not ios_saf < 13",
"type": "module",
"alias": {
"@graphite-frontend/*": "~/$1",
"@graphite/../assets/*": "~/assets/$1",
"@graphite/../public/*": "~/public/$1",
"@graphite/*": "~/src/$1"
},
"scripts": {
"start": "npm run serve",
"serve": "webpack serve || (npm run print-building-help && exit 1)",
"build": "webpack build || (npm run print-building-help && exit 1)",
"build-prod-unix": "NODE_ENV=production webpack build || (npm run print-building-help && exit 1)",
"build-prod-windows": "set NODE_ENV=production && webpack build || (npm run print-building-help && exit 1)",
"check": "svelte-check",
"lint": "webpack lint || (npm run print-linting-help && exit 1)",
"lint-no-fix": "webpack lint --no-fix || (npm run print-linting-help && exit 1)",
"tauri:build": "webpack tauri:build",
"tauri:serve": "webpack tauri:serve",
"start": "npm run build-wasm && concurrently -k \"parcel serve index.html --port 8080\" \"npm run watch:wasm\" || (npm run print-building-help && exit 1)",
"build": "npm run build-wasm-prod && npm run build-licenses && parcel build index.html || (npm run print-building-help && exit 1)",
"build-licenses": "webpack build",
"tauri:dev": "echo 'Make sure you build the wasm binary for tauri using `npm run tauri:build-wasm`' && parcel serve index.html --port 8080",
"build-wasm": "wasm-pack build ./wasm --dev --target=web",
"build-wasm-prod": "wasm-pack build ./wasm --release --target=web",
"tauri:build-wasm": "wasm-pack build ./wasm --release --target=web -- --features tauri",
"watch:wasm": "cargo watch --postpone --workdir wasm --shell \"wasm-pack build . --dev --target=web -- --color always\"",
"--------------------": "",
"print-building-help": "echo 'Graphite project failed to build. Did you remember to `npm install` the dependencies in `/frontend`?'",
"print-linting-help": "echo 'Graphite project had lint errors, or may have otherwise failed. In the latter case, did you remember to `npm install` the dependencies in `/frontend`?'"
},
@@ -24,35 +31,27 @@
"reflect-metadata": "^0.1.13"
},
"devDependencies": {
"@parcel/transformer-inline-string": "^2.8.3",
"@parcel/transformer-webmanifest": "^2.8.3",
"@types/license-checker-webpack-plugin": "^0.2.1",
"@types/node": "^18.11.18",
"@types/webpack": "^5.28.0",
"@types/webpack-dev-server": "^4.7.2",
"@typescript-eslint/eslint-plugin": "^5.48.0",
"@typescript-eslint/parser": "^5.48.0",
"@wasm-tool/wasm-pack-plugin": "^1.6.0",
"css-loader": "^6.7.3",
"eslint": "^8.31.0",
"eslint-config-prettier": "^8.6.0",
"eslint-plugin-import": "^2.26.0",
"@types/node": "^18.15.11",
"@types/webpack": "^5.28.1",
"buffer": "^5.7.1",
"concurrently": "^7.6.0",
"license-checker-webpack-plugin": "^0.2.1",
"prettier": "^2.8.2",
"sass": "^1.57.1",
"sass-loader": "^13.2.0",
"svelte": "^3.55.0",
"svelte-check": "^3.0.1",
"svelte-check-plugin": "^1.0.4",
"svelte-loader": "^3.1.4",
"svelte-preprocess": "^5.0.0",
"ts-loader": "^9.4.2",
"parcel": "^2.8.3",
"parcel-transformer-svelte3-plus": "^0.2.8",
"postcss": "^8.4.21",
"process": "^0.11.10",
"svelte": "^3.56.0",
"svelte-preprocess": "^4.10.7",
"ts-node": "^10.9.1",
"typescript": "^4.9.4",
"typescript": "^4.9.5",
"webpack": "^5.75.0",
"webpack-cli": "^5.0.1",
"webpack-dev-server": "^4.11.1"
"webpack-cli": "^5.0.1"
},
"optionalDependencies": {
"wasm-pack": "^0.10.3"
"wasm-pack": "0.10.3"
},
"//": "Notes about dependency issues and incompatibilities should be added here when needed.",
"homepage": "https://graphite.rs",