
committed by
Jason Aden

parent
5639891e90
commit
e98d508df2
46
aio/scripts/build-with-ivy.js
Normal file
46
aio/scripts/build-with-ivy.js
Normal file
@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
// Imports
|
||||
const {extend, parse} = require('cjson');
|
||||
const {readFileSync, writeFileSync} = require('fs');
|
||||
const {join, resolve} = require('path');
|
||||
const {exec, set} = require('shelljs');
|
||||
|
||||
set('-e');
|
||||
|
||||
// Constants
|
||||
const ROOT_DIR = resolve(__dirname, '..');
|
||||
const TS_CONFIG_PATH = join(ROOT_DIR, 'tsconfig.json');
|
||||
const NG_COMPILER_OPTS = {
|
||||
angularCompilerOptions: {
|
||||
// Related Jira issue: FW-737
|
||||
allowEmptyCodegenFiles: true,
|
||||
enableIvy: 'ngtsc',
|
||||
},
|
||||
};
|
||||
|
||||
// Run
|
||||
_main(process.argv.slice(2));
|
||||
|
||||
// Functions - Definitions
|
||||
function _main(buildArgs) {
|
||||
console.log('\nModifying `tsconfig.json`...');
|
||||
const oldTsConfigStr = readFileSync(TS_CONFIG_PATH, 'utf8');
|
||||
const oldTsConfigObj = parse(oldTsConfigStr);
|
||||
const newTsConfigObj = extend(true, oldTsConfigObj, NG_COMPILER_OPTS);
|
||||
const newTsConfigStr = JSON.stringify(newTsConfigObj, null, 2);
|
||||
writeFileSync(TS_CONFIG_PATH, newTsConfigStr);
|
||||
console.log(newTsConfigStr);
|
||||
|
||||
try {
|
||||
const buildArgsStr = buildArgs.join(' ');
|
||||
|
||||
console.log(`\nBuilding${buildArgsStr && ` with args \`${buildArgsStr}\``}...`);
|
||||
exec(`yarn ~~build ${buildArgsStr}`, {cwd: ROOT_DIR});
|
||||
} finally {
|
||||
console.log('\nRestoring `tsconfig.json`...');
|
||||
writeFileSync(TS_CONFIG_PATH, oldTsConfigStr);
|
||||
}
|
||||
|
||||
console.log('\nDone!');
|
||||
}
|
Reference in New Issue
Block a user