Closed NickIliev closed 6 years ago
From @RadouaneRoufid on June 14, 2018 12:34
On livesync development mode, when the application is active in the emulator or on device, the emulator os restarts when updating sources.
Below the logs I got :
Executing before-prepareJSApp hook from /home/user/Documents/dev/projects/project/nativescript/hooks/before-prepareJSApp/nativescript-dev-webpack.js Project successfully prepared (Android) Executing after-prepare hook from /home/user/Documents/dev/projects/project/nativescript/hooks/after-prepare/nativescript-dev-sass.js Executing after-prepare hook from /home/user/Documents/dev/projects/project/nativescript/hooks/after-prepare/nativescript-dev-webpack.js Successfully transferred alignment.directive.js. Refreshing application... Successfully synced application org.nativescript.androidextendng on device emulator-5554. ActivityManager: Start proc 17722:org.nativescript.androidextendng/u0a96 for activity org.nativescript.androidextendng/org.myApp.MainActivity ActivityManager: Killing 17722:org.nativescript.androidextendng/u0a96 (adj 0): stop org.nativescript.androidextendng ActivityManager: setHasOverlayUi called on unknown pid: 17722
And the emulator restarts without oppening the app. And I make another change, the app starts correctly this time.
"dependencies": { "@angular/animations": "~5.2.1", "@angular/common": "^5.2.1", "@angular/compiler": "^5.2.1", "@angular/core": "^5.2.1", "@angular/forms": "^5.2.1", "@angular/http": "^5.2.1", "@angular/platform-browser": "^5.2.1", "@angular/platform-browser-dynamic": "^5.2.1", "@angular/router": "^5.2.1", "@ngrx/effects": "^4.1.1", "@ngrx/router-store": "^4.1.1", "@ngrx/store": "^4.1.1", "@ngrx/store-devtools": "^4.1.1", "@ngx-progressbar/core": "^3.0.1", "@ngx-progressbar/http-client": "^3.0.1", "@ngx-translate/core": "^9.1.1", "@ngx-translate/http-loader": "^2.0.1", "arrive": "^2.3.1", "bootstrap": "4.0.0-alpha.6", "bootstrap-datepicker": "1.6.4", "bootstrap-social": "^5.1.1", "core-js": "^2.5.2", "font-awesome": "4.7.0", "fs": "0.0.1-security", "hammerjs": "^2.0.8", "i": "^0.3.6", "lodash": "^4.17.4", "materialize-css": "0.100.2", "nativescript-angular": "~5.2.0", "nativescript-background-http": "^3.2.7", "nativescript-bottom-navigation": "^1.1.2", "nativescript-bottombar": "^3.0.8", "nativescript-cardview": "^2.0.5", "nativescript-checkbox": "^3.0.3", "nativescript-floatingactionbutton": "^4.1.3", "nativescript-fresco": "^3.0.2", "nativescript-imagepicker": "^5.0.0", "nativescript-localstorage": "^1.1.5", "nativescript-mediafilepicker": "^1.0.5", "nativescript-modal-datetimepicker": "^1.1.0", "nativescript-ng-shadow": "^2.1.0", "nativescript-oauth": "^2.1.2", "nativescript-phone": "^1.3.1", "nativescript-photoviewer": "^1.4.0", "nativescript-snackbar": "^2.0.0", "nativescript-theme-core": "~1.0.4", "nativescript-ui-listview": "^3.5.7", "nativescript-ui-sidedrawer": "^4.1.1", "ng2-validation": "^4.2.0", "ngrx-store-freeze": "^0.1.9", "ngx-pagination": "^3.0.3", "node-sass": "^4.9.0", "npm": "^4.2.0", "osenv": "^0.1.4", "path": "^0.12.7", "reflect-metadata": "^0.1.12", "rxjs": "^5.5.5", "tether": "^1.4.3", "tns-core-modules": "~4.1.0", "uglify-es": "^3.3.9", "url": "^0.11.0", "velocity-animate": "^1.5.1", "zone.js": "0.8.5" }, "devDependencies": { "@angular-devkit/core": "~0.6.3", "@angular/compiler-cli": "^5.2.1", "@ngtools/webpack": "~6.0.3", "@types/googlemaps": "^3.30.8", "@types/jasmine": "^2.8.5", "babel-traverse": "6.26.0", "babel-types": "6.26.0", "babylon": "6.18.0", "clean-webpack-plugin": "~0.1.19", "copy-webpack-plugin": "~4.5.1", "css-loader": "~0.28.11", "del": "^2.2.2", "extract-text-webpack-plugin": "~3.0.2", "fs-walk": "0.0.2", "gulp": "^4.0.0", "gulp-debug": "^3.1.0", "gulp-exec": "^3.0.1", "gulp-if": "^2.0.2", "gulp-rename": "^1.2.2", "gulp-spawn": "^0.4.0", "gulp-string-replace": "^0.4.0", "lazy": "1.0.11", "mkdirp": "^0.5.1", "nativescript-dev-sass": "^1.6.0", "nativescript-dev-typescript": "~0.7.0", "nativescript-dev-webpack": "^0.12.0", "nativescript-hook": "^0.2.4", "nativescript-worker-loader": "~0.9.0", "raw-loader": "~0.5.1", "resolve-url-loader": "~2.3.0", "run-sequence": "^2.2.1", "sass-loader": "~7.0.1", "tns-platform-declarations": "^4.1.0", "typescript": "~2.7.2", "typescript-register": "^1.1.0", "uglifyjs-webpack-plugin": "~1.2.5", "webpack": "~4.6.0", "webpack-bundle-analyzer": "~2.13.0", "webpack-cli": "~2.1.3", "webpack-sources": "~1.1.0" }
const { join, relative, resolve, sep } = require("path");
const webpack = require("webpack"); const nsWebpack = require("nativescript-dev-webpack"); const nativescriptTarget = require("nativescript-dev-webpack/nativescript-target"); const CleanWebpackPlugin = require("clean-webpack-plugin"); const CopyWebpackPlugin = require("copy-webpack-plugin"); const { BundleAnalyzerPlugin } = require("webpack-bundle-analyzer"); const { NativeScriptWorkerPlugin } = require("nativescript-worker-loader/NativeScriptWorkerPlugin"); const UglifyJsPlugin = require("uglifyjs-webpack-plugin");
module.exports = env => { // Add your custom Activities, Services and other Android app components here. const appComponents = [ "tns-core-modules/ui/frame", "tns-core-modules/ui/frame/activity", resolve(__dirname, "app/activity.ts"), ];
const platform = env && (env.android && "android" || env.ios && "ios"); if (!platform) { throw new Error("You need to provide a target platform!"); } const platforms = ["ios", "android"]; const projectRoot = __dirname; nsWebpack.loadAdditionalPlugins({ projectDir: projectRoot }); // Default destination inside platforms/<platform>/... const dist = resolve(projectRoot, nsWebpack.getAppPath(platform, projectRoot)); const appResourcesPlatformDir = platform === "android" ? "Android" : "iOS"; const { // The 'appPath' and 'appResourcesPath' values are fetched from // the nsconfig.json configuration file // when bundling with `tns run android|ios --bundle`. appPath = "app", appResourcesPath = "app/App_Resources", // You can provide the following flags when running 'tns run android|ios' aot, // --env.aot snapshot, // --env.snapshot uglify, // --env.uglify report, // --env.report } = env; const appFullPath = resolve(projectRoot, appPath); const appResourcesFullPath = resolve(projectRoot, appResourcesPath); const entryModule = aot ? nsWebpack.getAotEntryModule(appFullPath) : `${nsWebpack.getEntryModule(appFullPath)}.ts`; const entryPath = `.${sep}${entryModule}`; const config = { mode: uglify ? "production" : "development", context: appFullPath, watchOptions: { ignored: [ appResourcesFullPath, // Don't watch hidden files "**/.*", ] }, target: nativescriptTarget, entry: { bundle: entryPath, }, output: { pathinfo: false, path: dist, libraryTarget: "commonjs2", filename: "[name].js", globalObject: "global", }, resolve: { extensions: [".ts", ".js", ".scss", ".css"], // Resolve {N} system modules from tns-core-modules modules: [ resolve(__dirname, "node_modules/tns-core-modules"), resolve(__dirname, "node_modules"), "node_modules/tns-core-modules", "node_modules", ], alias: { '~': appFullPath }, symlinks: true }, resolveLoader: { symlinks: false }, node: { // Disable node shims that conflict with NativeScript "http": false, "timers": false, "setImmediate": false, "fs": "empty", "__dirname": false, }, devtool: "none", optimization: { splitChunks: { cacheGroups: { vendor: { name: "vendor", chunks: "all", test: (module, chunks) => { const moduleName = module.nameForCondition ? module.nameForCondition() : ''; return /[\\/]node_modules[\\/]/.test(moduleName) || appComponents.some(comp => comp === moduleName); }, enforce: true, }, } }, minimize: !!uglify, minimizer: [ new UglifyJsPlugin({ uglifyOptions: { parallel: true, cache: true, output: { comments: false, }, compress: { // The Android SBG has problems parsing the output // when these options are enabled 'collapse_vars': platform !== "android", sequences: platform !== "android", } } }) ], }, module: { rules: [ { test: new RegExp(entryPath), use: [ // Require all Android app components platform === "android" && { loader: "nativescript-dev-webpack/android-app-components-loader", options: { modules: appComponents } }, { loader: "nativescript-dev-webpack/bundle-config-loader", options: { registerPages: false, loadCss: !snapshot, // load the application css if in debug mode } }, ].filter(loader => !!loader) }, { test: /\.html$|\.xml$/, use: "raw-loader" }, // tns-core-modules reads the app.css and its imports using css-loader { test: /[\/|\\]app\.css$/, use: { loader: "css-loader", options: { minimize: false, url: false }, } }, { test: /[\/|\\]app\.scss$/, use: [ { loader: "css-loader", options: { minimize: false, url: false } }, "sass-loader" ] }, // Angular components reference css files and their imports using raw-loader { test: /\.css$/, exclude: /[\/|\\]app\.css$/, use: "raw-loader" }, { test: /\.scss$/, exclude: /[\/|\\]app\.scss$/, use: ["raw-loader", "resolve-url-loader", "sass-loader"] }, // Compile TypeScript files with ahead-of-time compiler. { test: /.ts$/, use: [ "nativescript-dev-webpack/moduleid-compat-loader", "@ngtools/webpack", ] }, // Mark files inside `@angular/core` as using SystemJS style dynamic imports. // Removing this will cause deprecation warnings to appear. { test: /[\/\\]@angular[\/\\]core[\/\\].+\.js$/, parser: { system: true }, }, ], }, plugins: [ // Define useful constants like TNS_WEBPACK new webpack.DefinePlugin({ "global.TNS_WEBPACK": "true", }), // Remove all files from the out dir. new CleanWebpackPlugin([ `${dist}/**/*` ]), // Copy native app resources to out dir. new CopyWebpackPlugin([ { from: `${appResourcesFullPath}/${appResourcesPlatformDir}`, to: `${dist}/App_Resources/${appResourcesPlatformDir}`, context: projectRoot }, ]), // Copy assets to out dir. Add your own globs as needed. new CopyWebpackPlugin([ { from: "fonts/**" }, { from: "**/*.jpg" }, { from: "**/*.png" }, { from: "assets/i18n/*.json" }, ], { ignore: [`${relative(appPath, appResourcesFullPath)}/**`] }), // Generate a bundle starter script and activate it in package.json new nsWebpack.GenerateBundleStarterPlugin([ "./vendor", "./bundle", ]), // For instructions on how to set up workers with webpack // check out https://github.com/nativescript/worker-loader new NativeScriptWorkerPlugin(), // AngularCompilerPlugin with augmented NativeScript filesystem to handle platform specific resource resolution. new nsWebpack.NativeScriptAngularCompilerPlugin({ entryModule: resolve(appPath, "app.module#AppModule"), tsConfigPath: join(__dirname, "tsconfig.esm.json"), skipCodeGeneration: !aot, platformOptions: { platform, platforms, }, }), // Does IPC communication with the {N} CLI to notify events when running in watch mode. new nsWebpack.WatchStateLoggerPlugin(), ], }; if (report) { // Generate report files for bundles content config.plugins.push(new BundleAnalyzerPlugin({ analyzerMode: "static", openAnalyzer: false, generateStatsFile: true, reportFilename: resolve(projectRoot, "report", `report.html`), statsFilename: resolve(projectRoot, "report", `stats.json`), })); } if (snapshot) { config.plugins.push(new nsWebpack.NativeScriptSnapshotPlugin({ chunk: "vendor", requireModules: [ "reflect-metadata", "@angular/platform-browser", "@angular/core", "@angular/common", "@angular/router", "nativescript-angular/platform-static", "nativescript-angular/router", ], projectRoot, webpackConfig: config, })); } return config;
};
[NativeScript Forum]: http://forum.nativescript.org [issues]: https://github.com/nativescript/nativescript-dev-webpack/issues?utf8=✓&q=is%3Aissue [demo apps]: ../demo [documentation]: https://docs.nativescript.org/best-practices/bundling-with-webpack _Copied from original issue: NativeScript/nativescript-dev-webpack#567_
You can close this issue. It's certainly related to my working environment (RAM, disk size...).
From @RadouaneRoufid on June 14, 2018 12:34
Issue Checklist
Tell us about the problem
On livesync development mode, when the application is active in the emulator or on device, the emulator os restarts when updating sources.
Below the logs I got :
And the emulator restarts without oppening the app. And I make another change, the app starts correctly this time.
Local environment
Project data
const webpack = require("webpack"); const nsWebpack = require("nativescript-dev-webpack"); const nativescriptTarget = require("nativescript-dev-webpack/nativescript-target"); const CleanWebpackPlugin = require("clean-webpack-plugin"); const CopyWebpackPlugin = require("copy-webpack-plugin"); const { BundleAnalyzerPlugin } = require("webpack-bundle-analyzer"); const { NativeScriptWorkerPlugin } = require("nativescript-worker-loader/NativeScriptWorkerPlugin"); const UglifyJsPlugin = require("uglifyjs-webpack-plugin");
module.exports = env => { // Add your custom Activities, Services and other Android app components here. const appComponents = [ "tns-core-modules/ui/frame", "tns-core-modules/ui/frame/activity", resolve(__dirname, "app/activity.ts"), ];
};