mirror of
https://github.com/plankanban/planka.git
synced 2025-12-25 09:15:00 +03:00
build: Refine server build steps
This commit is contained in:
36
server/.buildignore
Normal file
36
server/.buildignore
Normal file
@@ -0,0 +1,36 @@
|
||||
**/.gitkeep
|
||||
**/.DS_Store
|
||||
|
||||
build.js
|
||||
generate-swagger.js
|
||||
nodemon.json
|
||||
swagger.json
|
||||
version-template.ejs
|
||||
.buildignore
|
||||
.editorconfig
|
||||
.env
|
||||
.eslintignore
|
||||
.gitignore
|
||||
.npmrc
|
||||
|
||||
.tmp
|
||||
.venv
|
||||
dist
|
||||
logs
|
||||
node_modules
|
||||
test
|
||||
|
||||
views/*
|
||||
|
||||
public/*
|
||||
!public/preloaded-favicons
|
||||
!public/favicons
|
||||
public/favicons/*
|
||||
!public/user-avatars
|
||||
public/user-avatars/*
|
||||
!public/background-images
|
||||
public/background-images/*
|
||||
|
||||
private/*
|
||||
!private/attachments
|
||||
private/attachments/*
|
||||
11
server/.gitignore
vendored
11
server/.gitignore
vendored
@@ -131,6 +131,12 @@ lib-cov
|
||||
|
||||
swagger.json
|
||||
|
||||
dist
|
||||
logs
|
||||
|
||||
views/*
|
||||
!views/.gitkeep
|
||||
|
||||
public/*
|
||||
!public/preloaded-favicons
|
||||
!public/favicons
|
||||
@@ -147,8 +153,3 @@ private/*
|
||||
!private/attachments
|
||||
private/attachments/*
|
||||
!private/attachments/.gitkeep
|
||||
|
||||
views/*
|
||||
!views/.gitkeep
|
||||
|
||||
logs
|
||||
|
||||
42
server/build.js
Normal file
42
server/build.js
Normal file
@@ -0,0 +1,42 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
// eslint-disable-next-line import/no-extraneous-dependencies
|
||||
const ignore = require('ignore');
|
||||
|
||||
const OUT_DIR = 'dist';
|
||||
|
||||
const ig = ignore();
|
||||
if (fs.existsSync('.buildignore')) {
|
||||
const patterns = fs.readFileSync('.buildignore', 'utf8');
|
||||
ig.add(patterns);
|
||||
}
|
||||
|
||||
if (fs.existsSync(OUT_DIR)) {
|
||||
fs.rmSync(OUT_DIR, { recursive: true, force: true });
|
||||
}
|
||||
|
||||
fs.mkdirSync(OUT_DIR, { recursive: true });
|
||||
|
||||
const build = (src, dest) => {
|
||||
const dirents = fs.readdirSync(src, { withFileTypes: true });
|
||||
|
||||
// eslint-disable-next-line no-restricted-syntax
|
||||
for (const dirent of dirents) {
|
||||
const srcPath = path.join(src, dirent.name);
|
||||
|
||||
if (ig.ignores(srcPath)) {
|
||||
continue; // eslint-disable-line no-continue
|
||||
}
|
||||
|
||||
const destPath = path.join(dest, dirent.name);
|
||||
|
||||
if (dirent.isDirectory()) {
|
||||
fs.mkdirSync(destPath, { recursive: true });
|
||||
build(srcPath, destPath);
|
||||
} else {
|
||||
fs.copyFileSync(srcPath, destPath);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
build('./', OUT_DIR);
|
||||
27
server/package-lock.json
generated
27
server/package-lock.json
generated
@@ -48,6 +48,7 @@
|
||||
"eslint-config-prettier": "^9.1.2",
|
||||
"eslint-plugin-import": "^2.32.0",
|
||||
"eslint-plugin-prettier": "^5.5.4",
|
||||
"ignore": "^7.0.5",
|
||||
"mocha": "^10.8.2",
|
||||
"nodemon": "^3.1.11",
|
||||
"prettier": "3.3.3",
|
||||
@@ -1108,6 +1109,16 @@
|
||||
"url": "https://opencollective.com/eslint"
|
||||
}
|
||||
},
|
||||
"node_modules/@eslint/eslintrc/node_modules/ignore": {
|
||||
"version": "5.3.2",
|
||||
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
|
||||
"integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 4"
|
||||
}
|
||||
},
|
||||
"node_modules/@eslint/js": {
|
||||
"version": "8.57.1",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz",
|
||||
@@ -4784,6 +4795,16 @@
|
||||
"url": "https://opencollective.com/eslint"
|
||||
}
|
||||
},
|
||||
"node_modules/eslint/node_modules/ignore": {
|
||||
"version": "5.3.2",
|
||||
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
|
||||
"integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 4"
|
||||
}
|
||||
},
|
||||
"node_modules/esm": {
|
||||
"version": "3.2.25",
|
||||
"resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz",
|
||||
@@ -6015,9 +6036,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/ignore": {
|
||||
"version": "5.3.2",
|
||||
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
|
||||
"integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
|
||||
"version": "7.0.5",
|
||||
"resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
|
||||
"integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
"private": true,
|
||||
"main": "app.js",
|
||||
"scripts": {
|
||||
"build": "node build.js",
|
||||
"console": "dotenv sails console",
|
||||
"db:create-admin-user": "node db/create-admin-user.js",
|
||||
"db:init": "node db/init.js",
|
||||
@@ -84,6 +85,7 @@
|
||||
"eslint-config-prettier": "^9.1.2",
|
||||
"eslint-plugin-import": "^2.32.0",
|
||||
"eslint-plugin-prettier": "^5.5.4",
|
||||
"ignore": "^7.0.5",
|
||||
"mocha": "^10.8.2",
|
||||
"nodemon": "^3.1.11",
|
||||
"prettier": "3.3.3",
|
||||
|
||||
Reference in New Issue
Block a user