37 lines
No EOL
1.4 KiB
JavaScript
37 lines
No EOL
1.4 KiB
JavaScript
const fs = require('fs')
|
|
var readlineSync = require('readline-sync');
|
|
const replaceInFiles = require('replace-in-file');
|
|
const argv = require('minimist')(process.argv.slice(2));
|
|
|
|
// questions
|
|
const appName = readlineSync.question('What is app name? ', { defaultInput: 'many' });
|
|
const appPort = readlineSync.question('Which port use for deployment? ', { defaultInput: '93' });
|
|
const isMonorepo = readlineSync.keyInYN('Apply monorepo?');
|
|
|
|
// context directory
|
|
const contextDir = `${argv._[0]}/` ?? './';
|
|
|
|
// create app folder
|
|
const appsDir = `${contextDir}/apps`
|
|
const appDir = isMonorepo ? `${contextDir}/apps/${appName}-fe` : `${contextDir}/`
|
|
if (!fs.existsSync(appDir)){
|
|
if (isMonorepo) {
|
|
fs.mkdirSync(appsDir);
|
|
}
|
|
fs.mkdirSync(appDir);
|
|
fs.mkdirSync(`${appDir}/src`);
|
|
}
|
|
|
|
// copy folder content
|
|
try {
|
|
fs.cpSync('./source/shared/', contextDir, { overwrite: false, recursive: true })
|
|
fs.cpSync('./source/app/', appDir, { overwrite: true, recursive: true })
|
|
} catch (err) {
|
|
console.error(err)
|
|
}
|
|
|
|
// replace in files
|
|
replaceInFiles.sync({ files: './build/**/*.{ts,tsx}', from: /\/\/.\@ts\-nocheck\n/gm, to: '' });
|
|
replaceInFiles.sync({ files: './build/**/*', from: /\$\(appName\)/gm, to: appName });
|
|
replaceInFiles.sync({ files: './build/**/*', from: /\$\(AppName\)/gm, to: appName.charAt(0).toUpperCase() + appName.slice(1) });
|
|
replaceInFiles.sync({ files: './build/**/*', from: /\$\(appPort\)/gm, to: appPort }); |