Files
Mike Hartington 75dd853a49 feat(): support ng add (#15323)
* feat(angular): support ng add

* feat(): add build aditions

* chore(): update schematics

* chore(): bad style import
2018-11-27 13:36:59 -05:00

64 lines
1.9 KiB
JavaScript

const fs = require('fs-extra');
const path = require('path');
const spawn = require('child_process').spawn;
const stencilPath = path.join(__dirname, '..', '..', 'core', 'node_modules', '.bin');
const typescriptPath = path.join(__dirname, '..', 'node_modules', '.bin');
function copyIonicons() {
const src = path.join(__dirname, '..', '..', 'core', 'node_modules', 'ionicons');
const dst = path.join(__dirname, '..', 'node_modules', 'ionicons');
fs.removeSync(dst);
fs.copySync(src, dst);
}
function copyCSS() {
const src = path.join(__dirname, '..', '..', 'core', 'css');
const dst = path.join(__dirname, '..', 'css');
fs.removeSync(dst);
fs.copySync(src, dst);
}
function buildSchematics(){
return new Promise((resolve, reject) => {
const cmd = 'tsc';
const args = [
'--project',
path.join(__dirname, '..', 'tsconfig.schematics.json'),
];
const p = spawn(cmd, args, { cwd: typescriptPath, stdio: 'inherit' });
p.on('close', (code) => {
if (code > 0) {
console.log(`ng-add build exited with ${code}`);
reject();
} else {
resolve();
}
});
});
}
function copySchematicsJson(){
const src = path.join(__dirname, '..', 'src', 'schematics', 'collection.json');
const fileSrc = path.join(__dirname, '..', 'src', 'schematics', 'add', 'files');
const dst = path.join(__dirname, '..', 'dist','schematics', 'collection.json');
const fileDst = path.join(__dirname, '..', 'dist', 'schematics', 'add', 'files');
const schemaSrc = path.join(__dirname, '..', 'src', 'schematics', 'add', 'schema.json');
const schemaDst = path.join(__dirname, '..', 'dist', 'schematics', 'add', 'schema.json');
fs.removeSync(dst);
fs.removeSync(fileDst);
fs.copySync(src, dst);
fs.copySync(fileSrc,fileDst);
fs.copySync(schemaSrc, schemaDst);
}
copyIonicons();
copyCSS();
buildSchematics();
copySchematicsJson()