From 5c85f7b1e37ab9fcb524f8d418d41b8b4e7b55d6 Mon Sep 17 00:00:00 2001 From: sis0k0 Date: Mon, 15 May 2017 16:28:37 +0300 Subject: [PATCH 1/2] refactor: clean-up unnecesary files --- .npmignore | 2 +- prepublish/angular/getExtensions.js.orig | 14 -------------- prepublish/angular/imports.js.orig | 1 - prepublish/angular/plugins.js.orig | 11 ----------- prepublish/angular/rules.js.orig | 10 ---------- prepublish/javascript/getExtensions.js.orig | 11 ----------- prepublish/typescript/getExtensions.js.orig | 13 ------------- prepublish/typescript/rules.js.orig | 9 --------- 8 files changed, 1 insertion(+), 70 deletions(-) delete mode 100644 prepublish/angular/getExtensions.js.orig delete mode 100644 prepublish/angular/imports.js.orig delete mode 100644 prepublish/angular/plugins.js.orig delete mode 100644 prepublish/angular/rules.js.orig delete mode 100644 prepublish/javascript/getExtensions.js.orig delete mode 100644 prepublish/typescript/getExtensions.js.orig delete mode 100644 prepublish/typescript/rules.js.orig diff --git a/.npmignore b/.npmignore index 039a9b2f..b9c5c28a 100644 --- a/.npmignore +++ b/.npmignore @@ -1 +1 @@ -template-generator +prepublish diff --git a/prepublish/angular/getExtensions.js.orig b/prepublish/angular/getExtensions.js.orig deleted file mode 100644 index e918ac0a..00000000 --- a/prepublish/angular/getExtensions.js.orig +++ /dev/null @@ -1,14 +0,0 @@ -module.exports = ` -// Resolve platform-specific modules like module.android.js -function getExtensions(platform) { - return Object.freeze([ - \`.\${platform}.ts\`, - \`.\${platform}.js\`, - ".aot.ts", - ".ts", - ".js", - ".css", - \`.\${platform}.css\`, - ]); -} -`; diff --git a/prepublish/angular/imports.js.orig b/prepublish/angular/imports.js.orig deleted file mode 100644 index 5dd1e1f4..00000000 --- a/prepublish/angular/imports.js.orig +++ /dev/null @@ -1 +0,0 @@ -module.exports = `const { AotPlugin } = require("@ngtools/webpack");`; diff --git a/prepublish/angular/plugins.js.orig b/prepublish/angular/plugins.js.orig deleted file mode 100644 index a09d8105..00000000 --- a/prepublish/angular/plugins.js.orig +++ /dev/null @@ -1,11 +0,0 @@ -module.exports = ` - // Angular AOT compiler - new AotPlugin({ - tsConfigPath: "tsconfig.aot.json", - entryModule: resolve(__dirname, "app/app.module#AppModule"), - typeChecking: false - }), - - // Resolve .ios.css and .android.css component stylesheets - new nsWebpack.StyleUrlResolvePlugin({platform}), -`; diff --git a/prepublish/angular/rules.js.orig b/prepublish/angular/rules.js.orig deleted file mode 100644 index 42415e3d..00000000 --- a/prepublish/angular/rules.js.orig +++ /dev/null @@ -1,10 +0,0 @@ -module.exports = ` - // Compile TypeScript files with ahead-of-time compiler. - { - test: /\\.ts$/, - loaders: [ - "nativescript-dev-webpack/tns-aot-loader", - "@ngtools/webpack", - ] - } -`; diff --git a/prepublish/javascript/getExtensions.js.orig b/prepublish/javascript/getExtensions.js.orig deleted file mode 100644 index 04b69487..00000000 --- a/prepublish/javascript/getExtensions.js.orig +++ /dev/null @@ -1,11 +0,0 @@ -module.exports = ` -// Resolve platform-specific modules like module.android.js -function getExtensions(platform) { - return Object.freeze([ - \`.\${platform}.js\`, - ".js", - ".css", - \`.\${platform}.css\`, - ]); -} -`; diff --git a/prepublish/typescript/getExtensions.js.orig b/prepublish/typescript/getExtensions.js.orig deleted file mode 100644 index afdaa94a..00000000 --- a/prepublish/typescript/getExtensions.js.orig +++ /dev/null @@ -1,13 +0,0 @@ -module.exports = ` -// Resolve platform-specific modules like module.android.js -function getExtensions(platform) { - return Object.freeze([ - \`.\${platform}.ts\`, - \`.\${platform}.js\`, - ".ts", - ".js", - ".css", - \`.\${platform}.css\`, - ]); -} -`; diff --git a/prepublish/typescript/rules.js.orig b/prepublish/typescript/rules.js.orig deleted file mode 100644 index 40d261c9..00000000 --- a/prepublish/typescript/rules.js.orig +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = ` - // Compile TypeScript files, replace templateUrl and styleUrls. - { - test: /\\.ts$/, - loaders: [ - "awesome-typescript-loader", - ] - } -`; From 22ef45a4b472f068ff2af0fe08d18fbe14f03940 Mon Sep 17 00:00:00 2001 From: sis0k0 Date: Mon, 15 May 2017 16:51:32 +0300 Subject: [PATCH 2/2] fix(ns-bundle): run gradlew clean instead of platform add/remove --- bin/ns-bundle | 68 +++++++++++++++++++++++++-------------------------- 1 file changed, 33 insertions(+), 35 deletions(-) diff --git a/bin/ns-bundle b/bin/ns-bundle index b4baef3c..01f295ef 100644 --- a/bin/ns-bundle +++ b/bin/ns-bundle @@ -2,6 +2,7 @@ const { spawn } = require("child_process"); const { resolve: pathResolve } = require("path"); +const { existsSync } = require("fs"); const { getPackageJson } = require("../projectHelpers"); const PROJECT_DIR = pathResolve(__dirname, "../../../"); @@ -16,11 +17,6 @@ const tnsArgs = getTnsArgs(npmArgs).map(escape); const flags = npmArgs.filter(a => a.startsWith("--")).map(a => a.substring(2)); const options = getOptions(flags); -let platformVersion; -try { - platformVersion = packageJson.nativescript[`tns-${options.platform}`].version; -} catch(e) {} - function getTnsArgs(args) { const other = [ "run", @@ -44,24 +40,52 @@ execute(options); function execute(options) { let commands = []; + const platform = options.platform; if (options.bundle) { - commands.push(() => clearPlatform(options.platform)); - commands.push(() => webpack(options.platform)); + commands.push(() => cleanApp(platform)); + commands.push(() => webpack(platform)); + } + + if (platform === "android") { + commands.push(() => gradlewClean()); } // If "build-app" or "start-app" is specified, // the respective command should be run last. // Otherwise, the app should be just prepared. if (options.command) { - commands.push(() => runTns(options.command, options.platform)); + commands.push(() => runTns(options.command, platform)); } else { - commands.shift(() => runTns("prepare", options.platform)) + commands.shift(() => runTns("prepare", platform)) } return commands.reduce((current, next) => current.then(next), Promise.resolve()); } +// Clear platform/**/app folder contents +function cleanApp(platform) { + return new Promise((resolve, reject) => { + spawnChildProcess(true, "tns", "clean-app", platform) + .then(resolve) + .catch(throwError) + }); +} + +function gradlewClean() { + return new Promise((resolve, reject) => { + const platformsPath = pathResolve(PROJECT_DIR, "platforms", "android") + const gradlew = pathResolve(platformsPath, "gradlew"); + if (!existsSync(gradlew)) { + resolve(); + } + + spawnChildProcess(true, gradlew, "-p", platformsPath, "clean") + .then(resolve) + .catch(throwError); + }); +} + function webpack(platform) { return new Promise(function (resolve, reject) { console.log(`Running webpack for ${platform}...`); @@ -81,32 +105,6 @@ function webpack(platform) { }); } -function clearPlatform(platform) { - return removePlatform(platform) - .then(() => addPlatform(platform)); -} - -function removePlatform(platform) { - return new Promise(function (resolve, reject) { - console.log(`Removing platform ${platform}...`); - - spawnChildProcess(false, "tns", "platform", "remove", platform) - .then(resolve) - .catch(resolve); - }); -} - -function addPlatform(platform) { - return new Promise(function (resolve, reject) { - const platformToAdd = platformVersion ? `${platform}@${platformVersion}` : platform; - console.log(`Adding platform ${platformToAdd}...`); - - spawnChildProcess(false, "tns", "platform", "add", platformToAdd) - .then(resolve) - .catch(resolve); - }); -} - function runTns(command, platform) { return new Promise((resolve, reject) => { console.log(`Running tns ${command}...`);