create symlink for node_modules in generateJson and buildRadar scripts

This commit is contained in:
dennis.ludwig
2021-06-17 12:02:39 +02:00
parent 9f55196bd5
commit f5d4b3021c
8 changed files with 58 additions and 39 deletions

View File

@@ -32,6 +32,8 @@ process.env.NODE_ENV = "production";
process.on("unhandledRejection", function (err) { process.on("unhandledRejection", function (err) {
throw err; throw err;
}); });
fs.removeSync(paths.templateNodeModules);
fs.ensureSymlinkSync(paths.appNodeModules, paths.templateNodeModules);
var runCommand = function (command) { var runCommand = function (command) {
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
var executedCommand = child_process_1.spawn(command, { var executedCommand = child_process_1.spawn(command, {

View File

@@ -56,9 +56,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
} }
}; };
Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "__esModule", { value: true });
var fs = __importStar(require("fs-extra"));
var paths = __importStar(require("./paths")); 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. // Do this as the first thing so that any code reading it knows the right env.
process.env.BABEL_ENV = "production"; process.env.BABEL_ENV = "production";
process.env.NODE_ENV = "production"; process.env.NODE_ENV = "production";
@@ -68,24 +67,30 @@ process.env.NODE_ENV = "production";
process.on("unhandledRejection", function (err) { process.on("unhandledRejection", function (err) {
throw 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 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) { return __generator(this, function (_a) {
switch (_a.label) { switch (_a.label) {
case 0: case 0:
_a.trys.push([0, 3, , 4]); createRadar = require("./generateJson/radar").createRadar;
return [4 /*yield*/, radar_1.createRadar()]; save = require("./generateJson/file").save;
_a.label = 1;
case 1: case 1:
radar = _a.sent(); _a.trys.push([1, 4, , 5]);
return [4 /*yield*/, file_1.save(JSON.stringify(radar), paths.radarJson)]; return [4 /*yield*/, createRadar()];
case 2: case 2:
_a.sent(); radar = _a.sent();
return [3 /*break*/, 4]; return [4 /*yield*/, save(JSON.stringify(radar), paths.radarJson)];
case 3: case 3:
_a.sent();
return [3 /*break*/, 5];
case 4:
e_1 = _a.sent(); e_1 = _a.sent();
console.error("error:", e_1); console.error("error:", e_1);
return [3 /*break*/, 4]; return [3 /*break*/, 5];
case 4: return [2 /*return*/]; case 5: return [2 /*return*/];
} }
}); });
}); }; }); };

View File

@@ -1,6 +1,6 @@
"use strict"; "use strict";
Object.defineProperty(exports, "__esModule", { value: true }); 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 path_1 = require("path");
var fs_1 = require("fs"); var fs_1 = require("fs");
exports.radarJson = "rd.json"; exports.radarJson = "rd.json";
@@ -16,7 +16,9 @@ var resolveTemplate = function (relativePath) {
}; };
exports.template = resolveTemplate(); exports.template = resolveTemplate();
exports.templateBuild = resolveTemplate("build"); exports.templateBuild = resolveTemplate("build");
exports.templateNodeModules = resolveTemplate("node_modules");
exports.appRdJson = resolveApp("build/" + exports.radarJson); exports.appRdJson = resolveApp("build/" + exports.radarJson);
exports.appBuild = resolveApp("build"); exports.appBuild = resolveApp("build");
exports.appPublic = resolveApp("public"); exports.appPublic = resolveApp("public");
exports.appYarnLock = resolveApp("yarn.lock"); exports.appYarnLock = resolveApp("yarn.lock");
exports.appNodeModules = resolveApp("node_modules");

View File

@@ -24,7 +24,18 @@
"lint": "yarn ts:check" "lint": "yarn ts:check"
}, },
"dependencies": { "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", "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", "moment": "^2.29.1",
"query-string": "^7.0.0", "query-string": "^7.0.0",
"react": "^17.0.2", "react": "^17.0.2",
@@ -32,28 +43,17 @@
"react-router-dom": "^5.2.0", "react-router-dom": "^5.2.0",
"react-scripts": "4.0.3", "react-scripts": "4.0.3",
"sass": "^1.34.0", "sass": "^1.34.0",
"typescript": "^4.1.2" "typescript": "^4.1.2",
"walk": "^2.3.14"
}, },
"devDependencies": { "devDependencies": {
"@testing-library/jest-dom": "^5.11.4", "@testing-library/jest-dom": "^5.11.4",
"@testing-library/react": "^11.1.0", "@testing-library/react": "^11.1.0",
"@testing-library/user-event": "^12.1.10", "@testing-library/user-event": "^12.1.10",
"@types/fs-extra": "^9.0.11",
"@types/jest": "^26.0.15", "@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", "husky": "^6.0.0",
"lint-staged": "^11.0.0", "lint-staged": "^11.0.0",
"marked": "^2.0.7", "prettier": "^2.3.0"
"prettier": "^2.3.0",
"walk": "^2.3.14"
}, },
"eslintConfig": { "eslintConfig": {
"extends": [ "extends": [

View File

@@ -15,6 +15,9 @@ process.on("unhandledRejection", (err) => {
throw err; throw err;
}); });
fs.removeSync(paths.templateNodeModules);
fs.ensureSymlinkSync(paths.appNodeModules, paths.templateNodeModules);
const runCommand = (command: string) => const runCommand = (command: string) =>
new Promise((resolve, reject) => { new Promise((resolve, reject) => {
const executedCommand = spawn(command, { const executedCommand = spawn(command, {

View File

@@ -1,8 +1,7 @@
#!/usr/bin/env node #!/usr/bin/env node
import * as fs from "fs-extra";
import * as paths from "./paths"; 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. // Do this as the first thing so that any code reading it knows the right env.
process.env.BABEL_ENV = "production"; process.env.BABEL_ENV = "production";
@@ -15,7 +14,13 @@ process.on("unhandledRejection", (err) => {
throw err; throw err;
}); });
fs.removeSync(paths.templateNodeModules);
fs.ensureSymlinkSync(paths.appNodeModules, paths.templateNodeModules);
const generateJson = async () => { const generateJson = async () => {
const { createRadar } = require("./generateJson/radar");
const { save } = require("./generateJson/file");
try { try {
const radar = await createRadar(); const radar = await createRadar();

View File

@@ -10,7 +10,9 @@ const resolveTemplate = (relativePath = "") =>
export const template = resolveTemplate(); export const template = resolveTemplate();
export const templateBuild = resolveTemplate("build"); export const templateBuild = resolveTemplate("build");
export const templateNodeModules = resolveTemplate("node_modules");
export const appRdJson = resolveApp(`build/${radarJson}`); export const appRdJson = resolveApp(`build/${radarJson}`);
export const appBuild = resolveApp("build"); export const appBuild = resolveApp("build");
export const appPublic = resolveApp("public"); export const appPublic = resolveApp("public");
export const appYarnLock = resolveApp("yarn.lock"); export const appYarnLock = resolveApp("yarn.lock");
export const appNodeModules = resolveApp("node_modules");

View File

@@ -2714,12 +2714,12 @@ babel-plugin-polyfill-corejs2@^0.2.2:
semver "^6.1.1" semver "^6.1.1"
babel-plugin-polyfill-corejs3@^0.2.2: babel-plugin-polyfill-corejs3@^0.2.2:
version "0.2.2" version "0.2.3"
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.2.tgz#7424a1682ee44baec817327710b1b094e5f8f7f5" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.3.tgz#72add68cf08a8bf139ba6e6dfc0b1d504098e57b"
integrity sha512-l1Cf8PKk12eEk5QP/NQ6TH8A1pee6wWDJ96WjxrMXFLHLOBFzYM4moG80HFgduVhTqAFez4alnZKEhP/bYHg0A== integrity sha512-rCOFzEIJpJEAU14XCcV/erIf/wZQMmMT5l5vXOpL5uoznyOGfDIjPj6FVytMvtzaKSTSVKouOCTPJ5OMUZH30g==
dependencies: dependencies:
"@babel/helper-define-polyfill-provider" "^0.2.2" "@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: babel-plugin-polyfill-regenerator@^0.2.2:
version "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" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= 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" version "3.14.0"
resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.14.0.tgz#b574dabf29184681d5b16357bd33d104df3d29a5" resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.14.0.tgz#b574dabf29184681d5b16357bd33d104df3d29a5"
integrity sha512-R4NS2eupxtiJU+VwgkF9WTpnSfZW4pogwKHd8bclWU2sp93Pr5S1uYJI84cMOubJRou7bcfL0vmwtLslWN5p3A== 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" supports-color "^6.1.0"
postcss@^8.1.0: postcss@^8.1.0:
version "8.3.4" version "8.3.5"
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.4.tgz#41ece1c43f2f7c74dc7d90144047ce052757b822" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.5.tgz#982216b113412bc20a86289e91eb994952a5b709"
integrity sha512-/tZY0PXExXXnNhKv3TOvZAOUYRyuqcCbBm2c17YMDK0PlVII3K7/LKdt3ScHL+hhouddjUWi+1sKDf9xXW+8YA== integrity sha512-NxTuJocUhYGsMiMFHDUkmjSKT3EdH4/WbGF6GCi1NDGk+vbcUTun4fpbOqaPtD8IIsztA2ilZm2DhYCuyN58gA==
dependencies: dependencies:
colorette "^1.2.2" colorette "^1.2.2"
nanoid "^3.1.23" nanoid "^3.1.23"
@@ -10983,9 +10983,9 @@ typedarray@^0.0.6:
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
typescript@^4.1.2: typescript@^4.1.2:
version "4.3.2" version "4.3.3"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.2.tgz#399ab18aac45802d6f2498de5054fcbbe716a805" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.3.tgz#5401db69bd3203daf1851a1a74d199cb3112c11a"
integrity sha512-zZ4hShnmnoVnAHpVHWpTcxdv7dWP60S2FsydQLV8V5PbS3FifjWFFRiHSWpDJahly88PRyV5teTSLoq4eG7mKw== integrity sha512-rUvLW0WtF7PF2b9yenwWUi9Da9euvDRhmH7BLyBG4DCFfOJ850LGNknmRpp8Z8kXNUPObdZQEfKOiHtXuQHHKA==
unbox-primitive@^1.0.1: unbox-primitive@^1.0.1:
version "1.0.1" version "1.0.1"