From f5d4b3021c8c8c9d8ee1d10cb89b0f2ec7109774 Mon Sep 17 00:00:00 2001 From: "dennis.ludwig" Date: Thu, 17 Jun 2021 12:02:39 +0200 Subject: [PATCH] create symlink for node_modules in generateJson and buildRadar scripts --- dist_scripts/scripts/buildRadar.js | 2 ++ dist_scripts/scripts/generateJson.js | 27 ++++++++++++++++----------- dist_scripts/scripts/paths.js | 4 +++- package.json | 28 ++++++++++++++-------------- scripts/buildRadar.ts | 3 +++ scripts/generateJson.ts | 9 +++++++-- scripts/paths.ts | 2 ++ yarn.lock | 22 +++++++++++----------- 8 files changed, 58 insertions(+), 39 deletions(-) diff --git a/dist_scripts/scripts/buildRadar.js b/dist_scripts/scripts/buildRadar.js index a683a9d..4f7ec07 100644 --- a/dist_scripts/scripts/buildRadar.js +++ b/dist_scripts/scripts/buildRadar.js @@ -32,6 +32,8 @@ process.env.NODE_ENV = "production"; process.on("unhandledRejection", function (err) { throw err; }); +fs.removeSync(paths.templateNodeModules); +fs.ensureSymlinkSync(paths.appNodeModules, paths.templateNodeModules); var runCommand = function (command) { return new Promise(function (resolve, reject) { var executedCommand = child_process_1.spawn(command, { diff --git a/dist_scripts/scripts/generateJson.js b/dist_scripts/scripts/generateJson.js index c213375..05fadec 100644 --- a/dist_scripts/scripts/generateJson.js +++ b/dist_scripts/scripts/generateJson.js @@ -56,9 +56,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) { } }; Object.defineProperty(exports, "__esModule", { value: true }); +var fs = __importStar(require("fs-extra")); var paths = __importStar(require("./paths")); -var radar_1 = require("./generateJson/radar"); -var file_1 = require("./generateJson/file"); // Do this as the first thing so that any code reading it knows the right env. process.env.BABEL_ENV = "production"; process.env.NODE_ENV = "production"; @@ -68,24 +67,30 @@ process.env.NODE_ENV = "production"; process.on("unhandledRejection", function (err) { throw err; }); +fs.removeSync(paths.templateNodeModules); +fs.ensureSymlinkSync(paths.appNodeModules, paths.templateNodeModules); var generateJson = function () { return __awaiter(void 0, void 0, void 0, function () { - var radar, e_1; + var createRadar, save, radar, e_1; return __generator(this, function (_a) { switch (_a.label) { case 0: - _a.trys.push([0, 3, , 4]); - return [4 /*yield*/, radar_1.createRadar()]; + createRadar = require("./generateJson/radar").createRadar; + save = require("./generateJson/file").save; + _a.label = 1; case 1: - radar = _a.sent(); - return [4 /*yield*/, file_1.save(JSON.stringify(radar), paths.radarJson)]; + _a.trys.push([1, 4, , 5]); + return [4 /*yield*/, createRadar()]; case 2: - _a.sent(); - return [3 /*break*/, 4]; + radar = _a.sent(); + return [4 /*yield*/, save(JSON.stringify(radar), paths.radarJson)]; case 3: + _a.sent(); + return [3 /*break*/, 5]; + case 4: e_1 = _a.sent(); console.error("error:", e_1); - return [3 /*break*/, 4]; - case 4: return [2 /*return*/]; + return [3 /*break*/, 5]; + case 5: return [2 /*return*/]; } }); }); }; diff --git a/dist_scripts/scripts/paths.js b/dist_scripts/scripts/paths.js index 1bca0fc..c5c1897 100644 --- a/dist_scripts/scripts/paths.js +++ b/dist_scripts/scripts/paths.js @@ -1,6 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.appYarnLock = exports.appPublic = exports.appBuild = exports.appRdJson = exports.templateBuild = exports.template = exports.radarJson = void 0; +exports.appNodeModules = exports.appYarnLock = exports.appPublic = exports.appBuild = exports.appRdJson = exports.templateNodeModules = exports.templateBuild = exports.template = exports.radarJson = void 0; var path_1 = require("path"); var fs_1 = require("fs"); exports.radarJson = "rd.json"; @@ -16,7 +16,9 @@ var resolveTemplate = function (relativePath) { }; exports.template = resolveTemplate(); exports.templateBuild = resolveTemplate("build"); +exports.templateNodeModules = resolveTemplate("node_modules"); exports.appRdJson = resolveApp("build/" + exports.radarJson); exports.appBuild = resolveApp("build"); exports.appPublic = resolveApp("public"); exports.appYarnLock = resolveApp("yarn.lock"); +exports.appNodeModules = resolveApp("node_modules"); diff --git a/package.json b/package.json index 0f61ce0..af67d61 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,18 @@ "lint": "yarn ts:check" }, "dependencies": { + "@types/fs-extra": "^9.0.11", + "@types/marked": "^2.0.3", + "@types/node": "^12.0.0", + "@types/react": "^17.0.0", + "@types/react-dom": "^17.0.0", + "@types/react-router-dom": "^5.1.7", + "@types/walk": "^2.3.0", "classnames": "^2.3.1", + "front-matter": "^4.0.2", + "fs-extra": "^10.0.0", + "highlight.js": "^11.0.0", + "marked": "^2.0.7", "moment": "^2.29.1", "query-string": "^7.0.0", "react": "^17.0.2", @@ -32,28 +43,17 @@ "react-router-dom": "^5.2.0", "react-scripts": "4.0.3", "sass": "^1.34.0", - "typescript": "^4.1.2" + "typescript": "^4.1.2", + "walk": "^2.3.14" }, "devDependencies": { "@testing-library/jest-dom": "^5.11.4", "@testing-library/react": "^11.1.0", "@testing-library/user-event": "^12.1.10", - "@types/fs-extra": "^9.0.11", "@types/jest": "^26.0.15", - "@types/marked": "^2.0.3", - "@types/node": "^12.0.0", - "@types/react": "^17.0.0", - "@types/react-dom": "^17.0.0", - "@types/react-router-dom": "^5.1.7", - "@types/walk": "^2.3.0", - "front-matter": "^4.0.2", - "fs-extra": "^10.0.0", - "highlight.js": "^11.0.0", "husky": "^6.0.0", "lint-staged": "^11.0.0", - "marked": "^2.0.7", - "prettier": "^2.3.0", - "walk": "^2.3.14" + "prettier": "^2.3.0" }, "eslintConfig": { "extends": [ diff --git a/scripts/buildRadar.ts b/scripts/buildRadar.ts index c05418f..46f84aa 100644 --- a/scripts/buildRadar.ts +++ b/scripts/buildRadar.ts @@ -15,6 +15,9 @@ process.on("unhandledRejection", (err) => { throw err; }); +fs.removeSync(paths.templateNodeModules); +fs.ensureSymlinkSync(paths.appNodeModules, paths.templateNodeModules); + const runCommand = (command: string) => new Promise((resolve, reject) => { const executedCommand = spawn(command, { diff --git a/scripts/generateJson.ts b/scripts/generateJson.ts index 045a26f..286172b 100644 --- a/scripts/generateJson.ts +++ b/scripts/generateJson.ts @@ -1,8 +1,7 @@ #!/usr/bin/env node +import * as fs from "fs-extra"; import * as paths from "./paths"; -import { createRadar } from "./generateJson/radar"; -import { save } from "./generateJson/file"; // Do this as the first thing so that any code reading it knows the right env. process.env.BABEL_ENV = "production"; @@ -15,7 +14,13 @@ process.on("unhandledRejection", (err) => { throw err; }); +fs.removeSync(paths.templateNodeModules); +fs.ensureSymlinkSync(paths.appNodeModules, paths.templateNodeModules); + const generateJson = async () => { + const { createRadar } = require("./generateJson/radar"); + const { save } = require("./generateJson/file"); + try { const radar = await createRadar(); diff --git a/scripts/paths.ts b/scripts/paths.ts index df62f2f..8802e4c 100644 --- a/scripts/paths.ts +++ b/scripts/paths.ts @@ -10,7 +10,9 @@ const resolveTemplate = (relativePath = "") => export const template = resolveTemplate(); export const templateBuild = resolveTemplate("build"); +export const templateNodeModules = resolveTemplate("node_modules"); export const appRdJson = resolveApp(`build/${radarJson}`); export const appBuild = resolveApp("build"); export const appPublic = resolveApp("public"); export const appYarnLock = resolveApp("yarn.lock"); +export const appNodeModules = resolveApp("node_modules"); diff --git a/yarn.lock b/yarn.lock index 487735a..7b226c3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2714,12 +2714,12 @@ babel-plugin-polyfill-corejs2@^0.2.2: semver "^6.1.1" babel-plugin-polyfill-corejs3@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.2.tgz#7424a1682ee44baec817327710b1b094e5f8f7f5" - integrity sha512-l1Cf8PKk12eEk5QP/NQ6TH8A1pee6wWDJ96WjxrMXFLHLOBFzYM4moG80HFgduVhTqAFez4alnZKEhP/bYHg0A== + version "0.2.3" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.3.tgz#72add68cf08a8bf139ba6e6dfc0b1d504098e57b" + integrity sha512-rCOFzEIJpJEAU14XCcV/erIf/wZQMmMT5l5vXOpL5uoznyOGfDIjPj6FVytMvtzaKSTSVKouOCTPJ5OMUZH30g== dependencies: "@babel/helper-define-polyfill-provider" "^0.2.2" - core-js-compat "^3.9.1" + core-js-compat "^3.14.0" babel-plugin-polyfill-regenerator@^0.2.2: version "0.2.2" @@ -3608,7 +3608,7 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-js-compat@^3.14.0, core-js-compat@^3.6.2, core-js-compat@^3.9.1: +core-js-compat@^3.14.0, core-js-compat@^3.6.2: version "3.14.0" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.14.0.tgz#b574dabf29184681d5b16357bd33d104df3d29a5" integrity sha512-R4NS2eupxtiJU+VwgkF9WTpnSfZW4pogwKHd8bclWU2sp93Pr5S1uYJI84cMOubJRou7bcfL0vmwtLslWN5p3A== @@ -8951,9 +8951,9 @@ postcss@^7, postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, po supports-color "^6.1.0" postcss@^8.1.0: - version "8.3.4" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.4.tgz#41ece1c43f2f7c74dc7d90144047ce052757b822" - integrity sha512-/tZY0PXExXXnNhKv3TOvZAOUYRyuqcCbBm2c17YMDK0PlVII3K7/LKdt3ScHL+hhouddjUWi+1sKDf9xXW+8YA== + version "8.3.5" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.5.tgz#982216b113412bc20a86289e91eb994952a5b709" + integrity sha512-NxTuJocUhYGsMiMFHDUkmjSKT3EdH4/WbGF6GCi1NDGk+vbcUTun4fpbOqaPtD8IIsztA2ilZm2DhYCuyN58gA== dependencies: colorette "^1.2.2" nanoid "^3.1.23" @@ -10983,9 +10983,9 @@ typedarray@^0.0.6: integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= typescript@^4.1.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.2.tgz#399ab18aac45802d6f2498de5054fcbbe716a805" - integrity sha512-zZ4hShnmnoVnAHpVHWpTcxdv7dWP60S2FsydQLV8V5PbS3FifjWFFRiHSWpDJahly88PRyV5teTSLoq4eG7mKw== + version "4.3.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.3.tgz#5401db69bd3203daf1851a1a74d199cb3112c11a" + integrity sha512-rUvLW0WtF7PF2b9yenwWUi9Da9euvDRhmH7BLyBG4DCFfOJ850LGNknmRpp8Z8kXNUPObdZQEfKOiHtXuQHHKA== unbox-primitive@^1.0.1: version "1.0.1"