Skip to content

Commit 9d12020

Browse files
committed
feat: CLI now fetch template from NPM
1 parent 52a57c7 commit 9d12020

File tree

1 file changed

+30
-15
lines changed

1 file changed

+30
-15
lines changed

packages/cli/createTsLib.js

Lines changed: 30 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -77,22 +77,37 @@ function createApp(name) {
7777
run(root, appName, originalDirectory);
7878
}
7979

80-
function run(root, appName, originalDirectory) {
81-
const templatePath = path.resolve(__dirname, 'template');
82-
if (fs.existsSync(templatePath)) {
83-
fs.copySync(templatePath, root);
84-
let packageJsonPath = path.join(root, 'package.json');
85-
let packageJson = require(packageJsonPath);
86-
packageJson.name = appName;
87-
packageJson.version = '0.0.1';
88-
89-
fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
90-
console.log('Installing packages. This might take a couple of minutes.');
91-
return install();
92-
} else {
93-
console.error(`Could not locate supplied template: ${chalk.green(templatePath)}`);
94-
return;
80+
async function run(root, appName, originalDirectory) {
81+
function installTemplate(templateName) {
82+
try {
83+
console.log('loading template', templateName);
84+
const res = require('child_process')
85+
.execSync(`npm install ${templateName}`)
86+
.toString()
87+
.trim();
88+
console.log(`${templateName} loaded successfully`);
89+
} catch (e) {
90+
console.log(`${templateName} err`);
91+
}
92+
}
93+
const templateName = '@nobrainr/typescript_universal-webpack-karma_jasmine';
94+
const templatePath = path.resolve(__dirname, 'node_modules', templateName);
95+
if (!fs.existsSync(templatePath)) {
96+
try {
97+
installTemplate(templateName);
98+
} catch (e) {
99+
console.log(e);
100+
}
95101
}
102+
fs.copySync(templatePath, root, { dereference: true });
103+
let packageJsonPath = path.join(root, 'package.json');
104+
let packageJson = require(packageJsonPath);
105+
packageJson.name = appName;
106+
packageJson.version = '0.0.1';
107+
108+
fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2));
109+
console.log('Installing packages. This might take a couple of minutes.');
110+
return await install();
96111
}
97112

98113
function install() {

0 commit comments

Comments
 (0)