Replace Gulp with Vite ⚡️
|
@ -1,2 +1 @@
|
||||||
/dist/
|
/dist/
|
||||||
/public/
|
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
},
|
},
|
||||||
"overrides": [
|
"overrides": [
|
||||||
{
|
{
|
||||||
"files": ["gulpfile.js", "api/*.js"],
|
"files": ["api/*.js"],
|
||||||
"env": {
|
"env": {
|
||||||
"node": true,
|
"node": true,
|
||||||
"browser": false
|
"browser": false
|
||||||
|
|
2
.gitignore
vendored
|
@ -302,5 +302,5 @@ $RECYCLE.BIN/
|
||||||
|
|
||||||
# End of https://www.toptal.com/developers/gitignore/api/node,now,visualstudiocode,webstorm+all,windows,macos,linux
|
# End of https://www.toptal.com/developers/gitignore/api/node,now,visualstudiocode,webstorm+all,windows,macos,linux
|
||||||
|
|
||||||
/public
|
/dist/
|
||||||
*.min.svg
|
*.min.svg
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
*.md
|
*.md
|
||||||
/dist/
|
/dist/
|
||||||
/public/
|
|
||||||
/.vercel/
|
/.vercel/
|
||||||
pnpm-lock.yaml
|
pnpm-lock.yaml
|
||||||
|
|
49
gulpfile.js
|
@ -1,49 +0,0 @@
|
||||||
const path = require("path");
|
|
||||||
const gulp = require("gulp");
|
|
||||||
const postcss = require("gulp-postcss");
|
|
||||||
const sass = require("gulp-sass")(require("sass"));
|
|
||||||
const sourcemaps = require("gulp-sourcemaps");
|
|
||||||
const terser = require("gulp-terser");
|
|
||||||
|
|
||||||
const SOURCE_DIR = path.resolve(__dirname, "src");
|
|
||||||
const OUTPUT_DIR = path.resolve(__dirname, "public");
|
|
||||||
|
|
||||||
function html() {
|
|
||||||
return gulp
|
|
||||||
.src(path.join(SOURCE_DIR, "index.html"))
|
|
||||||
.pipe(gulp.dest(OUTPUT_DIR));
|
|
||||||
}
|
|
||||||
|
|
||||||
function css() {
|
|
||||||
return gulp
|
|
||||||
.src(path.join(SOURCE_DIR, "scss", "*.scss"))
|
|
||||||
.pipe(sourcemaps.init())
|
|
||||||
.pipe(sass.sync().on("error", sass.logError))
|
|
||||||
.pipe(postcss([require("autoprefixer"), require("postcss-csso")]))
|
|
||||||
.pipe(sourcemaps.write("."))
|
|
||||||
.pipe(gulp.dest(OUTPUT_DIR));
|
|
||||||
}
|
|
||||||
|
|
||||||
function js() {
|
|
||||||
return gulp
|
|
||||||
.src([path.join(SOURCE_DIR, "main.js"), path.join(SOURCE_DIR, "count.js")])
|
|
||||||
.pipe(sourcemaps.init())
|
|
||||||
.pipe(terser({ ecma: 5 }))
|
|
||||||
.pipe(sourcemaps.write("."))
|
|
||||||
.pipe(gulp.dest(OUTPUT_DIR));
|
|
||||||
}
|
|
||||||
|
|
||||||
function staticFiles() {
|
|
||||||
return gulp
|
|
||||||
.src(path.join(SOURCE_DIR, "static", "**", "*"))
|
|
||||||
.pipe(gulp.dest(OUTPUT_DIR));
|
|
||||||
}
|
|
||||||
|
|
||||||
exports.default = gulp.parallel(html, css, js, staticFiles);
|
|
||||||
|
|
||||||
exports.watch = () => {
|
|
||||||
gulp.watch(path.join(SOURCE_DIR, "index.html"), html);
|
|
||||||
gulp.watch(path.join(SOURCE_DIR, "scss", "*.scss"), css);
|
|
||||||
gulp.watch(path.join(SOURCE_DIR, "*.js"), js);
|
|
||||||
gulp.watch(path.join(SOURCE_DIR, "static", "**", "*"), staticFiles);
|
|
||||||
};
|
|
|
@ -1,5 +1,5 @@
|
||||||
<!--
|
<!--
|
||||||
@source: https://github.com/kytta/share2fedi/blob/main/src/index.html
|
@source: https://github.com/kytta/share2fedi/blob/main/index.html
|
||||||
|
|
||||||
share2fedi - Instance-agnostic share page for the Fediverse.
|
share2fedi - Instance-agnostic share page for the Fediverse.
|
||||||
Copyright (C) 2020-2023 Nikita Karamov <me@kytta.dev>
|
Copyright (C) 2020-2023 Nikita Karamov <me@kytta.dev>
|
||||||
|
@ -32,7 +32,8 @@
|
||||||
/>
|
/>
|
||||||
<link rel="canonical" href="https://toot.kytta.dev/" />
|
<link rel="canonical" href="https://toot.kytta.dev/" />
|
||||||
|
|
||||||
<link href="/style.css" rel="stylesheet" />
|
<script type="module" src="/lib/main.js" async defer></script>
|
||||||
|
<script type="module" src="/lib/count.js" async defer></script>
|
||||||
|
|
||||||
<link href="/favicon.ico" rel="icon" type="image/x-icon" />
|
<link href="/favicon.ico" rel="icon" type="image/x-icon" />
|
||||||
<link href="/apple-touch-icon.png" rel="icon" type="image/svg+xml" />
|
<link href="/apple-touch-icon.png" rel="icon" type="image/svg+xml" />
|
||||||
|
@ -91,7 +92,5 @@
|
||||||
<a href="https://github.com/kytta/share2fedi">toot on GitHub</a>
|
<a href="https://github.com/kytta/share2fedi">toot on GitHub</a>
|
||||||
</section>
|
</section>
|
||||||
</footer>
|
</footer>
|
||||||
<script src="/main.js"></script>
|
|
||||||
<script src="/count.js" async defer></script>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
|
@ -1,5 +1,5 @@
|
||||||
/*!
|
/*!
|
||||||
* @source: https://github.com/kytta/share2fedi/blob/main/src/count.js
|
* @source: https://github.com/kytta/share2fedi/blob/main/lib/count.js
|
||||||
*
|
*
|
||||||
* @licstart The following is the entire license notice for the
|
* @licstart The following is the entire license notice for the
|
||||||
* JavaScript code in this page.
|
* JavaScript code in this page.
|
|
@ -1,5 +1,5 @@
|
||||||
/*!
|
/*!
|
||||||
* @source: https://github.com/kytta/share2fedi/blob/main/src/main.js
|
* @source: https://github.com/kytta/share2fedi/blob/main/lib/main.js
|
||||||
*
|
*
|
||||||
* @licstart The following is the entire license notice for the
|
* @licstart The following is the entire license notice for the
|
||||||
* JavaScript code in this page.
|
* JavaScript code in this page.
|
||||||
|
@ -26,6 +26,8 @@
|
||||||
* SPDX-License-Identifier: AGPL-3.0-or-later
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import "./scss/style.scss";
|
||||||
|
|
||||||
const INSTANCE_LIST_URL = "https://api.joinmastodon.org/servers";
|
const INSTANCE_LIST_URL = "https://api.joinmastodon.org/servers";
|
||||||
const LOCAL_STORAGE_KEY = "recentInstances";
|
const LOCAL_STORAGE_KEY = "recentInstances";
|
||||||
const RECENT_INSTANCES_SIZE = 5;
|
const RECENT_INSTANCES_SIZE = 5;
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* @source: https://github.com/kytta/share2fedi/blob/main/src/scss/_fonts.scss
|
* @source: https://github.com/kytta/share2fedi/blob/main/lib/scss/_fonts.scss
|
||||||
*
|
*
|
||||||
* share2fedi - Instance-agnostic share page for the Fediverse.
|
* share2fedi - Instance-agnostic share page for the Fediverse.
|
||||||
* Copyright (C) 2020-2023 Nikita Karamov <me@kytta.dev>
|
* Copyright (C) 2020-2023 Nikita Karamov <me@kytta.dev>
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* @source: https://github.com/kytta/share2fedi/blob/main/src/scss/_variables.scss
|
* @source: https://github.com/kytta/share2fedi/blob/main/lib/scss/_variables.scss
|
||||||
*
|
*
|
||||||
* share2fedi - Instance-agnostic share page for the Fediverse.
|
* share2fedi - Instance-agnostic share page for the Fediverse.
|
||||||
* Copyright (C) 2020-2023 Nikita Karamov <me@kytta.dev>
|
* Copyright (C) 2020-2023 Nikita Karamov <me@kytta.dev>
|
|
@ -1,5 +1,5 @@
|
||||||
/*!
|
/*!
|
||||||
* @source: https://github.com/kytta/share2fedi/blob/main/src/scss/style.scss
|
* @source: https://github.com/kytta/share2fedi/blob/main/lib/scss/style.scss
|
||||||
*
|
*
|
||||||
* share2fedi - Instance-agnostic share page for the Fediverse.
|
* share2fedi - Instance-agnostic share page for the Fediverse.
|
||||||
* Copyright (C) 2020-2023 Nikita Karamov <me@kytta.dev>
|
* Copyright (C) 2020-2023 Nikita Karamov <me@kytta.dev>
|
27
package.json
|
@ -10,32 +10,37 @@
|
||||||
"url": "https://github.com/kytta/share2fedi.git"
|
"url": "https://github.com/kytta/share2fedi.git"
|
||||||
},
|
},
|
||||||
"private": true,
|
"private": true,
|
||||||
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "gulp",
|
"build": "vite build",
|
||||||
"build-icons": "svgo --multipass assets/pentagon.svg assets/s2f.svg assets/share2fedi.svg -o assets/pentagon.min.svg assets/s2f.min.svg assets/share2fedi.min.svg",
|
"build-icons": "svgo --multipass assets/pentagon.svg assets/s2f.svg assets/share2fedi.svg -o assets/pentagon.min.svg assets/s2f.min.svg assets/share2fedi.min.svg",
|
||||||
"dev": "gulp watch",
|
"dev": "vite",
|
||||||
"fmt": "prettier --write .",
|
"fmt": "prettier --write .",
|
||||||
"lint": "prettier --check . && eslint .",
|
"lint": "prettier --check . && eslint .",
|
||||||
"test": "pnpm run lint",
|
"preview": "vite preview",
|
||||||
"serve": "sirv ./public --dev"
|
"test": "pnpm run lint"
|
||||||
},
|
},
|
||||||
"browserslist": "cover 95%, last 2 versions, Firefox ESR, not dead",
|
"browserslist": "cover 95%, last 2 versions, Firefox ESR, not dead",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@vitejs/plugin-legacy": "^4.0.2",
|
||||||
"autoprefixer": "^10.4.2",
|
"autoprefixer": "^10.4.2",
|
||||||
"browserslist": "^4.19.1",
|
"browserslist": "^4.19.1",
|
||||||
"eslint": "^8.35.0",
|
"eslint": "^8.35.0",
|
||||||
"eslint-config-prettier": "^8.6.0",
|
"eslint-config-prettier": "^8.6.0",
|
||||||
"eslint-plugin-unicorn": "^45.0.2",
|
"eslint-plugin-unicorn": "^45.0.2",
|
||||||
"gulp": "^4.0.2",
|
|
||||||
"gulp-postcss": "^9.0.1",
|
|
||||||
"gulp-sass": "^5.1.0",
|
|
||||||
"gulp-sourcemaps": "^3.0.0",
|
|
||||||
"gulp-terser": "^2.1.0",
|
|
||||||
"postcss": "^8.4.6",
|
"postcss": "^8.4.6",
|
||||||
"postcss-csso": "^6.0.0",
|
"postcss-csso": "^6.0.0",
|
||||||
"prettier": "^2.8.4",
|
"prettier": "^2.8.4",
|
||||||
"sass": "^1.49.7",
|
"sass": "^1.49.7",
|
||||||
"sirv-cli": "^2.0.2",
|
"svgo": "^3.0.1",
|
||||||
"svgo": "^3.0.1"
|
"terser": "^5.16.6",
|
||||||
|
"vite": "^4.1.4"
|
||||||
|
},
|
||||||
|
"postcss": {
|
||||||
|
"map": true,
|
||||||
|
"plugins": {
|
||||||
|
"autoprefixer": {},
|
||||||
|
"postcss-csso": {}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
4111
pnpm-lock.yaml
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 9.5 KiB |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
10
vite.config.js
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
import legacy from "@vitejs/plugin-legacy";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
build: {
|
||||||
|
minify: "terser",
|
||||||
|
terserOptions: { ecma: 5 },
|
||||||
|
sourcemap: "true",
|
||||||
|
},
|
||||||
|
plugins: [legacy()],
|
||||||
|
};
|