nativescript 9.1.0-alpha.15 → 9.1.0-alpha.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/build-jekyll-md.sh +1 -1
- package/docs/man_pages/config/config-set.md +2 -0
- package/lib/android-tools-info.js +0 -12
- package/lib/base-package-manager.js +0 -7
- package/lib/bootstrap.js +1 -5
- package/lib/bun-package-manager.js +1 -14
- package/lib/color.js +0 -4
- package/lib/commands/add-platform.js +0 -1
- package/lib/commands/apple-login.js +0 -1
- package/lib/commands/appstore-list.js +0 -1
- package/lib/commands/appstore-upload.js +0 -3
- package/lib/commands/build.js +3 -3
- package/lib/commands/clean.js +1 -22
- package/lib/commands/command-base.js +0 -1
- package/lib/commands/config.js +0 -5
- package/lib/commands/create-project.js +0 -6
- package/lib/commands/debug.js +2 -6
- package/lib/commands/deploy.js +3 -3
- package/lib/commands/embedding/embed.js +0 -7
- package/lib/commands/extensibility/install-extension.js +0 -1
- package/lib/commands/extensibility/list-extensions.js +0 -1
- package/lib/commands/extensibility/uninstall-extension.js +0 -1
- package/lib/commands/fonts.js +0 -1
- package/lib/commands/generate-assets.js +0 -1
- package/lib/commands/generate-help.js +0 -1
- package/lib/commands/generate.js +1 -48
- package/lib/commands/hooks/common.js +1 -2
- package/lib/commands/hooks/hooks-lock.js +0 -1
- package/lib/commands/hooks/hooks.js +0 -1
- package/lib/commands/info.js +0 -1
- package/lib/commands/install.js +0 -1
- package/lib/commands/list-platforms.js +0 -1
- package/lib/commands/migrate.js +0 -1
- package/lib/commands/native-add.js +0 -5
- package/lib/commands/platform-clean.js +0 -1
- package/lib/commands/plugin/add-plugin.js +0 -1
- package/lib/commands/plugin/build-plugin.js +0 -1
- package/lib/commands/plugin/create-plugin.js +0 -5
- package/lib/commands/plugin/list-plugins.js +0 -1
- package/lib/commands/plugin/remove-plugin.js +0 -2
- package/lib/commands/plugin/update-plugin.js +0 -1
- package/lib/commands/post-install.js +0 -6
- package/lib/commands/prepare.js +5 -5
- package/lib/commands/preview.js +0 -2
- package/lib/commands/remove-platform.js +0 -1
- package/lib/commands/resources/resources-update.js +0 -2
- package/lib/commands/run.js +0 -1
- package/lib/commands/setup.js +0 -1
- package/lib/commands/start.js +0 -1
- package/lib/commands/test-init.js +0 -4
- package/lib/commands/test.js +3 -9
- package/lib/commands/typings.js +1 -2
- package/lib/commands/update-platform.js +0 -5
- package/lib/commands/update.js +0 -2
- package/lib/commands/widget.js +0 -18
- package/lib/common/bootstrap.js +0 -1
- package/lib/common/child-process.js +0 -3
- package/lib/common/codeGeneration/code-entity.js +0 -1
- package/lib/common/codeGeneration/code-printer.js +0 -1
- package/lib/common/command-params.js +0 -1
- package/lib/common/commands/analytics.js +0 -3
- package/lib/common/commands/autocompletion.js +0 -3
- package/lib/common/commands/device/device-log-stream.js +0 -1
- package/lib/common/commands/device/get-file.js +0 -2
- package/lib/common/commands/device/list-applications.js +0 -1
- package/lib/common/commands/device/list-devices.js +0 -3
- package/lib/common/commands/device/list-files.js +0 -2
- package/lib/common/commands/device/put-file.js +0 -2
- package/lib/common/commands/device/run-application.js +0 -1
- package/lib/common/commands/device/stop-application.js +0 -1
- package/lib/common/commands/device/uninstall-application.js +0 -1
- package/lib/common/commands/doctor.js +3 -3
- package/lib/common/commands/generate-messages.js +0 -1
- package/lib/common/commands/help.js +0 -1
- package/lib/common/commands/package-manager-get.js +0 -1
- package/lib/common/commands/package-manager-set.js +0 -1
- package/lib/common/commands/post-install.js +0 -1
- package/lib/common/commands/preuninstall.js +2 -11
- package/lib/common/commands/proxy/proxy-base.js +0 -4
- package/lib/common/commands/proxy/proxy-clear.js +0 -1
- package/lib/common/commands/proxy/proxy-get.js +0 -1
- package/lib/common/commands/proxy/proxy-set.js +0 -1
- package/lib/common/common-lib.js +0 -1
- package/lib/common/constants.js +14 -12
- package/lib/common/declarations.d.ts +37 -117
- package/lib/common/decorators.js +0 -48
- package/lib/common/definitions/key-commands.js +8 -0
- package/lib/common/dispatchers.js +1 -10
- package/lib/common/enums.js +42 -0
- package/lib/common/errors.js +4 -13
- package/lib/common/file-system.js +2 -13
- package/lib/common/header.js +0 -3
- package/lib/common/helpers.js +3 -89
- package/lib/common/host-info.js +0 -4
- package/lib/common/http-client.js +0 -20
- package/lib/common/logger/appenders/cli-appender.js +0 -4
- package/lib/common/logger/appenders/emit-appender.js +0 -4
- package/lib/common/logger/layouts/cli-layout.js +0 -1
- package/lib/common/logger/logger.js +0 -5
- package/lib/common/messages/messages.js +0 -6
- package/lib/common/mobile/android/android-application-manager.js +1 -20
- package/lib/common/mobile/android/android-debug-bridge-result-handler.js +0 -1
- package/lib/common/mobile/android/android-debug-bridge.js +0 -6
- package/lib/common/mobile/android/android-device-file-system.js +0 -4
- package/lib/common/mobile/android/android-device-hash-service.js +0 -3
- package/lib/common/mobile/android/android-device.js +0 -8
- package/lib/common/mobile/android/android-emulator-services.js +1 -2
- package/lib/common/mobile/android/android-ini-file-parser.js +0 -9
- package/lib/common/mobile/android/android-log-filter.js +0 -4
- package/lib/common/mobile/android/android-virtual-device-service.js +0 -26
- package/lib/common/mobile/android/device-android-debug-bridge.js +0 -1
- package/lib/common/mobile/android/genymotion/genymotion-service.js +1 -6
- package/lib/common/mobile/android/genymotion/virtualbox-service.js +0 -11
- package/lib/common/mobile/android/logcat-helper.js +0 -13
- package/lib/common/mobile/application-manager-base.js +0 -6
- package/lib/common/mobile/device-emitter.js +0 -4
- package/lib/common/mobile/device-log-emitter.js +0 -1
- package/lib/common/mobile/device-log-provider-base.js +0 -1
- package/lib/common/mobile/device-log-provider.js +0 -23
- package/lib/common/mobile/device-platforms-constants.js +0 -1
- package/lib/common/mobile/emulator-helper.js +0 -3
- package/lib/common/mobile/ios/device/ios-application-manager.js +0 -3
- package/lib/common/mobile/ios/device/ios-device-file-system.js +0 -9
- package/lib/common/mobile/ios/device/ios-device-operations.js +0 -4
- package/lib/common/mobile/ios/device/ios-device.js +0 -4
- package/lib/common/mobile/ios/ios-device-base.js +0 -1
- package/lib/common/mobile/ios/ios-device-product-name-mapper.js +0 -2
- package/lib/common/mobile/ios/ios-log-filter.js +0 -1
- package/lib/common/mobile/ios/simulator/ios-emulator-services.js +0 -4
- package/lib/common/mobile/ios/simulator/ios-sim-resolver.js +0 -1
- package/lib/common/mobile/ios/simulator/ios-simulator-application-manager.js +0 -6
- package/lib/common/mobile/ios/simulator/ios-simulator-device.js +0 -5
- package/lib/common/mobile/ios/simulator/ios-simulator-file-system.js +0 -1
- package/lib/common/mobile/ios/simulator/ios-simulator-log-provider.js +0 -1
- package/lib/common/mobile/local-to-device-path-data-factory.js +0 -1
- package/lib/common/mobile/log-filter.js +0 -2
- package/lib/common/mobile/logging-levels.js +0 -1
- package/lib/common/mobile/mobile-core/android-device-discovery.js +0 -2
- package/lib/common/mobile/mobile-core/android-emulator-discovery.js +0 -3
- package/lib/common/mobile/mobile-core/android-process-service.js +0 -32
- package/lib/common/mobile/mobile-core/device-discovery.js +0 -1
- package/lib/common/mobile/mobile-core/devices-service.js +0 -69
- package/lib/common/mobile/mobile-core/ios-device-discovery.js +0 -2
- package/lib/common/mobile/mobile-core/ios-simulator-discovery.js +0 -3
- package/lib/common/mobile/mobile-helper.js +0 -1
- package/lib/common/mobile/wp8/wp8-emulator-services.js +0 -1
- package/lib/common/opener.js +0 -1
- package/lib/common/os-info.js +0 -1
- package/lib/common/plist-parser.js +0 -1
- package/lib/common/project-helper.js +0 -1
- package/lib/common/prompter.js +1 -9
- package/lib/common/queue.js +0 -1
- package/lib/common/resource-loader.js +0 -1
- package/lib/common/services/analytics/google-analytics-custom-dimensions.js +13 -0
- package/lib/common/services/auto-completion-service.js +1 -13
- package/lib/common/services/cancellation.js +2 -2
- package/lib/common/services/commands-service.js +8 -17
- package/lib/common/services/help-service.js +4 -11
- package/lib/common/services/hooks-service.js +0 -13
- package/lib/common/services/ios-notification-service.js +0 -1
- package/lib/common/services/json-file-settings-service.js +0 -6
- package/lib/common/services/lock-service.js +0 -6
- package/lib/common/services/message-contract-generator.js +0 -1
- package/lib/common/services/messages-service.js +0 -1
- package/lib/common/services/micro-templating-service.js +0 -6
- package/lib/common/services/net-service.js +0 -3
- package/lib/common/services/project-files-manager.js +0 -5
- package/lib/common/services/project-files-provider-base.js +0 -1
- package/lib/common/services/proxy-service.js +0 -1
- package/lib/common/services/qr.js +0 -1
- package/lib/common/services/settings-service.js +0 -1
- package/lib/common/services/xcode-select-service.js +0 -1
- package/lib/common/utils.js +0 -1
- package/lib/common/validators/project-name-validator.js +0 -1
- package/lib/common/validators/validation-result.js +0 -1
- package/lib/common/verify-node-version.js +2 -8
- package/lib/common/yok.js +12 -32
- package/lib/config.js +1 -22
- package/lib/constants-provider.js +0 -1
- package/lib/constants.js +54 -58
- package/lib/controllers/build-controller.js +3 -4
- package/lib/controllers/debug-controller.js +3 -8
- package/lib/controllers/deploy-controller.js +0 -1
- package/lib/controllers/migrate-controller.js +4 -90
- package/lib/controllers/platform-controller.js +2 -9
- package/lib/controllers/prepare-controller.js +8 -24
- package/lib/controllers/run-controller.js +1 -81
- package/lib/controllers/update-controller-base.js +0 -1
- package/lib/controllers/update-controller.js +0 -11
- package/lib/data/build-data.js +0 -1
- package/lib/data/controller-data-base.js +0 -1
- package/lib/data/debug-data.js +0 -1
- package/lib/data/platform-data.js +0 -1
- package/lib/data/prepare-data.js +0 -1
- package/lib/data/run-data.js +0 -1
- package/lib/definitions/project.d.ts +1 -6
- package/lib/definitions/system-warnings.js +8 -0
- package/lib/detached-processes/cleanup-js-subprocess.js +3 -8
- package/lib/detached-processes/cleanup-process.js +15 -18
- package/lib/detached-processes/detached-process-enums.js +24 -0
- package/lib/detached-processes/file-log-service.js +2 -2
- package/lib/device-path-provider.js +0 -1
- package/lib/device-sockets/ios/app-debug-socket-proxy-factory.js +0 -7
- package/lib/device-sockets/ios/notification.js +0 -3
- package/lib/device-sockets/ios/socket-request-executor.js +0 -3
- package/lib/helpers/android-bundle-validator-helper.js +1 -2
- package/lib/helpers/deploy-command-helper.js +0 -1
- package/lib/helpers/key-command-helper.js +3 -4
- package/lib/helpers/livesync-command-helper.js +2 -4
- package/lib/helpers/network-connectivity-validator.js +0 -1
- package/lib/helpers/options-track-helper.js +4 -3
- package/lib/helpers/package-path-helper.js +0 -1
- package/lib/helpers/platform-command-helper.js +2 -7
- package/lib/helpers/version-validator-helper.js +0 -1
- package/lib/key-commands/bootstrap.js +3 -3
- package/lib/key-commands/index.js +5 -5
- package/lib/nativescript-cli-lib-bootstrap.js +0 -4
- package/lib/nativescript-cli-lib.js +0 -1
- package/lib/nativescript-cli.js +2 -11
- package/lib/node/pbxproj-dom-xcode.js +0 -1
- package/lib/node/xcode.js +0 -1
- package/lib/node-package-manager.js +1 -11
- package/lib/options.js +121 -145
- package/lib/package-installation-manager.js +1 -8
- package/lib/package-manager.js +0 -2
- package/lib/platform-command-param.js +0 -1
- package/lib/pnpm-package-manager.js +1 -4
- package/lib/project-data.js +0 -12
- package/lib/providers/project-files-provider.js +0 -1
- package/lib/resolvers/livesync-service-resolver.js +0 -1
- package/lib/services/analytics/analytics-broker-process.js +8 -10
- package/lib/services/analytics/analytics-broker.js +2 -2
- package/lib/services/analytics/analytics-service.js +29 -29
- package/lib/services/analytics/google-analytics-provider.js +16 -13
- package/lib/services/analytics-settings-service.js +0 -5
- package/lib/services/android/android-bundle-tool-service.js +0 -1
- package/lib/services/android/gradle-build-args-service.js +0 -3
- package/lib/services/android/gradle-build-service.js +0 -1
- package/lib/services/android/gradle-command-service.js +0 -1
- package/lib/services/android-device-debug-service.js +0 -6
- package/lib/services/android-plugin-build-service.js +2 -31
- package/lib/services/android-project-service.js +4 -71
- package/lib/services/android-resources-migration-service.js +0 -7
- package/lib/services/apple-portal/apple-portal-application-service.js +0 -1
- package/lib/services/apple-portal/apple-portal-cookie-service.js +0 -1
- package/lib/services/apple-portal/apple-portal-session-service.js +4 -6
- package/lib/services/apple-portal/srp/srp-wrapper.js +1 -4
- package/lib/services/assets-generation/assets-generation-service.js +13 -11
- package/lib/services/build-artifacts-service.js +1 -2
- package/lib/services/build-data-service.js +0 -1
- package/lib/services/build-info-file-service.js +0 -1
- package/lib/services/bundler/bundler-compiler-service.js +1 -144
- package/lib/services/bundler/bundler.js +0 -1
- package/lib/services/cleanup-service.js +10 -13
- package/lib/services/cocoapods-platform-manager.js +0 -9
- package/lib/services/cocoapods-service.js +1 -21
- package/lib/services/debug-data-service.js +0 -1
- package/lib/services/debug-service-base.js +0 -7
- package/lib/services/device/device-install-app-service.js +1 -2
- package/lib/services/doctor-service.js +6 -21
- package/lib/services/extensibility-service.js +0 -8
- package/lib/services/files-hash-service.js +0 -1
- package/lib/services/hmr-status-service.js +0 -2
- package/lib/services/info-service.js +0 -1
- package/lib/services/initialize-service.js +2 -5
- package/lib/services/ios/export-options-plist-service.js +0 -4
- package/lib/services/ios/ios-signing-service.js +0 -4
- package/lib/services/ios/spm-service.js +0 -119
- package/lib/services/ios/xcodebuild-args-service.js +0 -29
- package/lib/services/ios/xcodebuild-command-service.js +0 -3
- package/lib/services/ios/xcodebuild-service.js +1 -2
- package/lib/services/ios-debugger-port-service.js +0 -1
- package/lib/services/ios-device-debug-service.js +0 -1
- package/lib/services/ios-entitlements-service.js +0 -1
- package/lib/services/ios-extensions-service.js +0 -1
- package/lib/services/ios-log-filter.js +0 -20
- package/lib/services/ios-native-target-service.js +5 -6
- package/lib/services/ios-project-service.js +7 -133
- package/lib/services/ios-provision-service.js +0 -3
- package/lib/services/ios-watch-app-service.js +10 -60
- package/lib/services/ip-service.js +0 -2
- package/lib/services/itmstransporter-service.js +0 -1
- package/lib/services/karma-execution.js +0 -2
- package/lib/services/livesync/android-device-livesync-service-base.js +0 -1
- package/lib/services/livesync/android-device-livesync-service.js +0 -2
- package/lib/services/livesync/android-device-livesync-sockets-service.js +0 -3
- package/lib/services/livesync/android-livesync-service.js +0 -1
- package/lib/services/livesync/android-livesync-tool.js +0 -4
- package/lib/services/livesync/device-livesync-service-base.js +0 -2
- package/lib/services/livesync/ios-device-livesync-service.js +0 -7
- package/lib/services/livesync/ios-livesync-service.js +0 -55
- package/lib/services/livesync/livesync-socket.js +0 -1
- package/lib/services/livesync/platform-livesync-service-base.js +0 -5
- package/lib/services/livesync-process-data-service.js +0 -1
- package/lib/services/log-parser-service.js +0 -1
- package/lib/services/log-source-map-service.js +0 -15
- package/lib/services/marking-mode-service.js +10 -8
- package/lib/services/metadata-filtering-service.js +0 -1
- package/lib/services/npm-config-service.js +0 -4
- package/lib/services/pacote-service.js +0 -7
- package/lib/services/performance-service.js +2 -3
- package/lib/services/platform/add-platform-service.js +2 -49
- package/lib/services/platform/platform-validation-service.js +0 -1
- package/lib/services/platform/prepare-native-platform-service.js +3 -5
- package/lib/services/platform-environment-requirements.js +4 -8
- package/lib/services/platform-project-service-base.js +0 -1
- package/lib/services/platforms-data-service.js +0 -1
- package/lib/services/plugins-service.js +2 -20
- package/lib/services/prepare-data-service.js +0 -1
- package/lib/services/project-backup-service.js +0 -4
- package/lib/services/project-changes-service.js +3 -14
- package/lib/services/project-cleanup-service.js +0 -2
- package/lib/services/project-config-service.js +2 -21
- package/lib/services/project-data-service.js +7 -36
- package/lib/services/project-name-service.js +0 -1
- package/lib/services/project-service.js +0 -10
- package/lib/services/project-templates-service.js +2 -3
- package/lib/services/qr-code-terminal-service.js +0 -1
- package/lib/services/require-service.js +0 -1
- package/lib/services/start-service.js +0 -1
- package/lib/services/temp-service.js +0 -3
- package/lib/services/terminal-spinner-service.js +0 -2
- package/lib/services/test-execution-service.js +3 -9
- package/lib/services/test-initialization-service.js +0 -4
- package/lib/services/timeline-profiler-service.js +0 -1
- package/lib/services/user-settings-service.js +0 -1
- package/lib/services/versions-service.js +5 -6
- package/lib/services/watch-ignore-list-service.js +0 -1
- package/lib/services/xcconfig-service.js +45 -12
- package/lib/services/xcproj-service.js +0 -1
- package/lib/shared-event-bus.js +0 -6
- package/lib/sys-info.js +2 -2
- package/lib/tools/config-manipulation/config-transformer.js +0 -12
- package/lib/tools/node-modules/node-modules-builder.js +0 -1
- package/lib/tools/node-modules/node-modules-dependencies-builder.js +0 -6
- package/lib/yarn-package-manager.js +0 -1
- package/lib/yarn2-package-manager.js +0 -3
- package/package.json +7 -18
- package/lib/.d.ts +0 -504
- package/lib/common/definitions/key-commands.d.ts +0 -62
- package/lib/common/services/analytics/google-analytics-custom-dimensions.d.ts +0 -16
- package/lib/definitions/system-warnings.d.ts +0 -4
- package/lib/detached-processes/detached-process-enums.d.ts +0 -70
- package/lib/services/analytics/google-analytics-cross-client-custom-dimensions.d.ts +0 -6
|
@@ -16,11 +16,9 @@ const decorators_1 = require("../../common/decorators");
|
|
|
16
16
|
const constants_1 = require("../../constants");
|
|
17
17
|
const yok_1 = require("../../common/yok");
|
|
18
18
|
const package_path_helper_1 = require("../../helpers/package-path-helper");
|
|
19
|
-
/* for specific bundling debugging separate from logger */
|
|
20
19
|
const debugLog = false;
|
|
21
20
|
class BundlerCompilerService extends events_1.EventEmitter {
|
|
22
|
-
constructor($options, $errors, $childProcess, $fs, $hooksService, $hostInfo, $logger, $mobileHelper, $cleanupService, $packageManager, $packageInstallationManager,
|
|
23
|
-
$projectConfigService) {
|
|
21
|
+
constructor($options, $errors, $childProcess, $fs, $hooksService, $hostInfo, $logger, $mobileHelper, $cleanupService, $packageManager, $packageInstallationManager, $projectConfigService) {
|
|
24
22
|
super();
|
|
25
23
|
this.$options = $options;
|
|
26
24
|
this.$errors = $errors;
|
|
@@ -35,9 +33,6 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
35
33
|
this.$packageInstallationManager = $packageInstallationManager;
|
|
36
34
|
this.$projectConfigService = $projectConfigService;
|
|
37
35
|
this.bundlerProcesses = {};
|
|
38
|
-
// Vite-only: the long-lived `vite serve` dev server the device fetches
|
|
39
|
-
// modules and HMR updates from. Keyed by platform, managed by this CLI
|
|
40
|
-
// so users no longer need a separate `concurrently`/`wait-on` process.
|
|
41
36
|
this.viteServeProcesses = {};
|
|
42
37
|
this.expectedHashes = {};
|
|
43
38
|
}
|
|
@@ -58,22 +53,9 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
58
53
|
}
|
|
59
54
|
let isFirstBundlerWatchCompilation = true;
|
|
60
55
|
prepareData.watch = true;
|
|
61
|
-
// Bring up the Vite HMR dev server the device fetches modules /
|
|
62
|
-
// HMR updates from. No-op unless bundler is vite + hmr + watch.
|
|
63
|
-
// Fired in parallel with the build watcher; both child processes
|
|
64
|
-
// inherit the adb-reverse env the run-controller set before
|
|
65
|
-
// prepare, so neither one spawns adb on its own. Not awaited HERE
|
|
66
|
-
// — but the first-build resolution below gates on it, because the
|
|
67
|
-
// app is (re)started as soon as `compileWithWatch` resolves and its
|
|
68
|
-
// very first HTTP module fetch dies on connection-refused if the
|
|
69
|
-
// server hasn't bound yet (a cold `vite serve` config load + vendor
|
|
70
|
-
// prebuild competes with this build watcher for CPU and can take
|
|
71
|
-
// 10-30s). Running both in parallel keeps the happy-path wall time
|
|
72
|
-
// at max(first build, server bind) instead of their sum.
|
|
73
56
|
const viteDevServerStartup = this.startViteDevServer(platformData, projectData, prepareData);
|
|
74
57
|
try {
|
|
75
58
|
const childProcess = await this.startBundleProcess(platformData, projectData, prepareData);
|
|
76
|
-
// Handle Vite differently from webpack
|
|
77
59
|
const isVite = this.getBundler() === "vite";
|
|
78
60
|
childProcess.stdout.on("data", function (data) {
|
|
79
61
|
process.stdout.write(data);
|
|
@@ -81,11 +63,8 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
81
63
|
childProcess.stderr.on("data", function (data) {
|
|
82
64
|
process.stderr.write(data);
|
|
83
65
|
});
|
|
84
|
-
// For both Vite and webpack, we wait for the first build to complete
|
|
85
|
-
// Don't resolve immediately for Vite - wait for first IPC message
|
|
86
66
|
childProcess.on("message", (message) => {
|
|
87
67
|
this.$logger.trace(`Message from ${projectData.bundler}`, message);
|
|
88
|
-
// Handle Vite messages
|
|
89
68
|
if (isVite &&
|
|
90
69
|
message &&
|
|
91
70
|
message.emittedFiles) {
|
|
@@ -93,16 +72,13 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
93
72
|
if (debugLog) {
|
|
94
73
|
console.log("Received Vite IPC message:", message);
|
|
95
74
|
}
|
|
96
|
-
// Copy Vite output files directly to platform destination
|
|
97
75
|
const { distOutput, destDir } = this.getViteBuildPaths(platformData, projectData);
|
|
98
76
|
if (debugLog) {
|
|
99
77
|
console.log(`Copying from ${distOutput} to ${destDir}.`);
|
|
100
78
|
}
|
|
101
|
-
// Determine which files to copy based on build type and changes
|
|
102
79
|
if (message.buildType === "incremental" &&
|
|
103
80
|
message.emittedFiles &&
|
|
104
81
|
message.emittedFiles.length > 0) {
|
|
105
|
-
// Incremental builds: only copy files that are likely affected by the changes
|
|
106
82
|
const filesToCopy = this.getIncrementalFilesToCopy(message.emittedFiles);
|
|
107
83
|
if (debugLog) {
|
|
108
84
|
console.log("Incremental build - files to copy:", filesToCopy);
|
|
@@ -115,12 +91,6 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
115
91
|
}
|
|
116
92
|
this.copyViteBundleToNative(distOutput, destDir);
|
|
117
93
|
}
|
|
118
|
-
// Resolve the promise on first build completion — gated on
|
|
119
|
-
// the HMR dev server being reachable (no-op resolve for
|
|
120
|
-
// non-HMR runs). `startViteDevServer` never rejects and its
|
|
121
|
-
// readiness probe is bounded, so this cannot hang the run;
|
|
122
|
-
// on probe timeout we proceed and the device's own retry
|
|
123
|
-
// handles any residual gap.
|
|
124
94
|
if (isFirstBundlerWatchCompilation) {
|
|
125
95
|
isFirstBundlerWatchCompilation = false;
|
|
126
96
|
if (debugLog) {
|
|
@@ -129,7 +99,6 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
129
99
|
viteDevServerStartup.then(() => resolve(childProcess));
|
|
130
100
|
return;
|
|
131
101
|
}
|
|
132
|
-
// Transform Vite message to match webpack format
|
|
133
102
|
const files = message.emittedFiles.map((file) => path.join(platformData.appDestinationDirectoryPath, this.$options.hostProjectModuleName, file));
|
|
134
103
|
const data = {
|
|
135
104
|
files,
|
|
@@ -147,23 +116,14 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
147
116
|
this.emit(constants_1.BUNDLER_COMPILATION_COMPLETE, data);
|
|
148
117
|
return;
|
|
149
118
|
}
|
|
150
|
-
// if we are on webpack5 - we handle HMR in a slightly different way
|
|
151
119
|
if (typeof message === "object" &&
|
|
152
120
|
"version" in message &&
|
|
153
121
|
"type" in message) {
|
|
154
|
-
// first compilation can be ignored because it will be synced regardless
|
|
155
|
-
// handling it here would trigger 2 syncs
|
|
156
122
|
if (isFirstBundlerWatchCompilation) {
|
|
157
123
|
isFirstBundlerWatchCompilation = false;
|
|
158
124
|
resolve(childProcess);
|
|
159
125
|
return;
|
|
160
126
|
}
|
|
161
|
-
// if ((message as IWebpackMessage).type === "hmr-status") {
|
|
162
|
-
// // we pass message through our event-bus to be handled wherever needed
|
|
163
|
-
// // in this case webpack-hmr-status-service listens for this event
|
|
164
|
-
// this.$sharedEventBus.emit("webpack:hmr-status", message);
|
|
165
|
-
// return;
|
|
166
|
-
// }
|
|
167
127
|
return this.handleHMRMessage(message, platformData, projectData, prepareData);
|
|
168
128
|
}
|
|
169
129
|
if (message ===
|
|
@@ -179,7 +139,6 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
179
139
|
prepareData.hmr ? message.hash : "";
|
|
180
140
|
return;
|
|
181
141
|
}
|
|
182
|
-
// Persist the previousHash value before calling `this.getUpdatedEmittedFiles` as it will modify the expectedHashes object with the current hash
|
|
183
142
|
const previousHash = this.expectedHashes[platformData.platformNameLowerCase];
|
|
184
143
|
let result;
|
|
185
144
|
if (prepareData.hmr) {
|
|
@@ -204,7 +163,6 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
204
163
|
platform: platformData.platformNameLowerCase,
|
|
205
164
|
};
|
|
206
165
|
this.$logger.trace(`Generated data from ${projectData.bundler} message:`, data);
|
|
207
|
-
// the hash of the compilation is the same as the previous one and there are only hot updates produced
|
|
208
166
|
if (data.hasOnlyHotUpdateFiles && previousHash === message.hash) {
|
|
209
167
|
return;
|
|
210
168
|
}
|
|
@@ -252,18 +210,6 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
252
210
|
delete this.bundlerProcesses[platformData.platformNameLowerCase];
|
|
253
211
|
const exitCode = typeof arg === "number" ? arg : arg && arg.code;
|
|
254
212
|
if (exitCode === 0) {
|
|
255
|
-
// Non-watch Vite builds spawn the child with stdio:"inherit"
|
|
256
|
-
// (no IPC channel), so the emittedFiles message handler in
|
|
257
|
-
// compileWithWatch never fires and the Vite output is never
|
|
258
|
-
// copied to the platforms app folder. Mirror that copy step
|
|
259
|
-
// here so release/CI prepare and build flows actually deploy
|
|
260
|
-
// the freshly built bundle. Without this, the deploy folder
|
|
261
|
-
// is left empty (or worse, runs stale dev/HMR artifacts from
|
|
262
|
-
// a previous `ns debug` run) and the runtime crashes on
|
|
263
|
-
// launch with `Check failed: has_pending_exception()`.
|
|
264
|
-
// The copy must succeed for the build to succeed — a build
|
|
265
|
-
// whose bundle never reached the native app is not a
|
|
266
|
-
// successful build, so copy failures reject here.
|
|
267
213
|
try {
|
|
268
214
|
if (isVite) {
|
|
269
215
|
const { distOutput, destDir } = this.getViteBuildPaths(platformData, projectData);
|
|
@@ -299,9 +245,6 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
299
245
|
}
|
|
300
246
|
}
|
|
301
247
|
async shouldUsePreserveSymlinksOption() {
|
|
302
|
-
// pnpm does not require symlink (https://github.com/nodejs/node-eps/issues/46#issuecomment-277373566)
|
|
303
|
-
// and it also does not work in some cases.
|
|
304
|
-
// Check https://github.com/NativeScript/nativescript-cli/issues/5259 for more information
|
|
305
248
|
const currentPackageManager = await this.$packageManager.getPackageManagerName();
|
|
306
249
|
const res = currentPackageManager !== constants_1.PackageManagers.pnpm;
|
|
307
250
|
return res;
|
|
@@ -320,7 +263,6 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
320
263
|
const envData = this.buildEnvData(platformData.platformNameLowerCase, projectData, prepareData);
|
|
321
264
|
const isVite = this.getBundler() === "vite";
|
|
322
265
|
const cliArgs = await this.buildEnvCommandLineParams(envData, platformData, projectData, prepareData);
|
|
323
|
-
// Note: With Vite, we need `--` to prevent vite cli from erroring on unknown options.
|
|
324
266
|
const envParams = isVite
|
|
325
267
|
? [
|
|
326
268
|
`--mode=${prepareData.release ? "production" : "development"}`,
|
|
@@ -380,26 +322,6 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
380
322
|
const fromEnv = Number(process.env.NS_HMR_PORT);
|
|
381
323
|
return Number.isFinite(fromEnv) && fromEnv > 0 ? fromEnv : 5173;
|
|
382
324
|
}
|
|
383
|
-
/**
|
|
384
|
-
* Spawn and manage the Vite dev server (`vite serve`) for HMR.
|
|
385
|
-
*
|
|
386
|
-
* Why the CLI owns this. With Vite, HMR needs a long-lived dev server
|
|
387
|
-
* (HTTP + the `/ns-hmr` websocket on port 5173) that the device fetches
|
|
388
|
-
* modules and hot updates from — it is SEPARATE from the
|
|
389
|
-
* `vite build --watch` process that emits the `bundle.mjs` bootstrap
|
|
390
|
-
* baked into the app. Historically users wired this up themselves with
|
|
391
|
-
* `concurrently`/`wait-on`, which left two uncoordinated processes both
|
|
392
|
-
* touching adb during cold start (the source of the Android
|
|
393
|
-
* "Searching for devices…" freeze). By spawning it here as a child of
|
|
394
|
-
* the CLI, the dev server inherits the CLI's environment — crucially
|
|
395
|
-
* `NS_ADB_REVERSE_READY`/`NS_DEVICE_SERIAL`/`NS_ADB_PATH` set by the
|
|
396
|
-
* run-controller — so the CLI is the single adb owner and the dev
|
|
397
|
-
* server never spawns adb itself.
|
|
398
|
-
*
|
|
399
|
-
* No-op unless bundler is vite, HMR is on, watch mode, and not release.
|
|
400
|
-
* Best-effort: failures are logged, never thrown — a dev-server hiccup
|
|
401
|
-
* must not fail the run.
|
|
402
|
-
*/
|
|
403
325
|
async startViteDevServer(platformData, projectData, prepareData) {
|
|
404
326
|
try {
|
|
405
327
|
if (this.getBundler() !== "vite") {
|
|
@@ -413,10 +335,6 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
413
335
|
return;
|
|
414
336
|
}
|
|
415
337
|
const port = this.getViteHmrPort();
|
|
416
|
-
// One dev server per port. Simultaneous multi-platform HMR in a
|
|
417
|
-
// single CLI invocation would collide on 5173 — that case still
|
|
418
|
-
// needs a distinct NS_HMR_PORT per platform, so skip + warn rather
|
|
419
|
-
// than fail to bind.
|
|
420
338
|
const collidingPlatform = Object.keys(this.viteServeProcesses)[0];
|
|
421
339
|
if (collidingPlatform) {
|
|
422
340
|
this.$logger.warn(`Vite dev server already running for '${collidingPlatform}' on port ${port}; skipping a second server for '${key}'. For simultaneous multi-platform HMR, set a distinct NS_HMR_PORT per platform.`);
|
|
@@ -428,9 +346,6 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
428
346
|
if (await this.shouldUsePreserveSymlinksOption()) {
|
|
429
347
|
additionalNodeArgs.push("--preserve-symlinks");
|
|
430
348
|
}
|
|
431
|
-
// `vite serve` (not `build`): runs the dev server and watches on
|
|
432
|
-
// its own — no `--watch`. Env flags (`--env.android --env.hmr …`)
|
|
433
|
-
// go after `--` so vite's CLI doesn't choke on unknown options.
|
|
434
349
|
const args = [
|
|
435
350
|
...additionalNodeArgs,
|
|
436
351
|
this.getBundlerExecutablePath(projectData),
|
|
@@ -442,9 +357,6 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
442
357
|
].filter(Boolean);
|
|
443
358
|
const options = {
|
|
444
359
|
cwd: projectData.projectDir,
|
|
445
|
-
// Inherit so the dev server's URLs/logs stream to the user as
|
|
446
|
-
// before. No IPC needed here — the build watcher provides the
|
|
447
|
-
// bundle-complete IPC; the dev server is fetched over HTTP/ws.
|
|
448
360
|
stdio: "inherit",
|
|
449
361
|
env: {
|
|
450
362
|
...process.env,
|
|
@@ -464,17 +376,11 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
464
376
|
this.$logger.warn(`Vite dev server for ${key} exited with code ${code}.`);
|
|
465
377
|
}
|
|
466
378
|
});
|
|
467
|
-
// Bounded readiness probe so we can surface a clear log once the
|
|
468
|
-
// device can actually reach modules.
|
|
469
379
|
const ready = await this.waitForPort(port, 30000);
|
|
470
380
|
if (ready) {
|
|
471
381
|
this.$logger.info(`Vite dev server ready on port ${port} (HMR for ${key}).`);
|
|
472
382
|
}
|
|
473
383
|
else {
|
|
474
|
-
// Warn (not trace): the first-build resolution in
|
|
475
|
-
// `compileWithWatch` gates on this method, so a probe timeout
|
|
476
|
-
// means the app will be deployed against a server that may not
|
|
477
|
-
// be up yet — the user should see why a boot might stall.
|
|
478
384
|
this.$logger.warn(`Vite dev server port ${port} not observed open within the readiness probe window; continuing (it may bind shortly).`);
|
|
479
385
|
}
|
|
480
386
|
}
|
|
@@ -482,10 +388,6 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
482
388
|
this.$logger.warn(`Failed to start the Vite dev server: ${err}. HMR may be unavailable.`);
|
|
483
389
|
}
|
|
484
390
|
}
|
|
485
|
-
/**
|
|
486
|
-
* Resolve true once `127.0.0.1:<port>` accepts a TCP connection, or
|
|
487
|
-
* false after `timeoutMs`. Used to detect the Vite dev server is up.
|
|
488
|
-
*/
|
|
489
391
|
waitForPort(port, timeoutMs) {
|
|
490
392
|
const deadline = Date.now() + timeoutMs;
|
|
491
393
|
return new Promise((resolve) => {
|
|
@@ -527,28 +429,16 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
527
429
|
});
|
|
528
430
|
envData.verbose = envData.verbose || this.$logger.isVerbose();
|
|
529
431
|
envData.production = envData.production || prepareData.release;
|
|
530
|
-
// add the config file name to the env data so the webpack process can read the
|
|
531
|
-
// correct config file when resolving the CLI lib and the config service
|
|
532
|
-
// we are explicitly setting it to false to force using the defaults
|
|
533
432
|
envData.config =
|
|
534
433
|
(_b = (_a = process.env.NATIVESCRIPT_CONFIG_NAME) !== null && _a !== void 0 ? _a : this.$options.config) !== null && _b !== void 0 ? _b : "false";
|
|
535
|
-
// explicitly set the env variable
|
|
536
434
|
process.env.NATIVESCRIPT_CONFIG_NAME = envData.config;
|
|
537
|
-
// The snapshot generation is wrongly located in the Webpack plugin.
|
|
538
|
-
// It should be moved in the Native Prepare of the CLI or a Gradle task in the Runtime.
|
|
539
|
-
// As a workaround, we skip the mksnapshot, xxd and android-ndk calls based on skipNativePrepare.
|
|
540
|
-
// In this way the plugin will prepare only the snapshot JS entry without any native prepare and
|
|
541
|
-
// we will able to execute cloud builds with snapshot without having any local snapshot or Docker setup.
|
|
542
|
-
// TODO: Remove this flag when we remove the native part from the plugin.
|
|
543
435
|
envData.skipSnapshotTools =
|
|
544
436
|
prepareData.nativePrepare && prepareData.nativePrepare.skipNativePrepare;
|
|
545
|
-
// only set sourceMap if not explicitly set through a flag
|
|
546
437
|
if (typeof ((_c = prepareData === null || prepareData === void 0 ? void 0 : prepareData.env) === null || _c === void 0 ? void 0 : _c.sourceMap) === "undefined") {
|
|
547
438
|
if (!prepareData.release) {
|
|
548
439
|
envData.sourceMap = true;
|
|
549
440
|
}
|
|
550
441
|
}
|
|
551
|
-
// convert string to boolean
|
|
552
442
|
if (envData.sourceMap === "true" || envData.sourceMap === "false") {
|
|
553
443
|
envData.sourceMap = envData.sourceMap === "true";
|
|
554
444
|
}
|
|
@@ -569,7 +459,6 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
569
459
|
}
|
|
570
460
|
else if (this.$hostInfo.isWindows) {
|
|
571
461
|
if (projectData.bundler === "webpack") {
|
|
572
|
-
//TODO: check this use case for webpack5 WEBPACK_PLUGIN_NAME
|
|
573
462
|
const minWebpackPluginWithWinSnapshotsVersion = "1.3.0";
|
|
574
463
|
const installedWebpackPluginVersion = await this.$packageInstallationManager.getInstalledDependencyVersion(constants_1.WEBPACK_PLUGIN_NAME, projectData.projectDir);
|
|
575
464
|
const hasWebpackPluginWithWinSnapshotsSupport = !!installedWebpackPluginVersion
|
|
@@ -603,15 +492,6 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
603
492
|
}
|
|
604
493
|
getUpdatedEmittedFiles(allEmittedFiles, chunkFiles, nextHash, platform) {
|
|
605
494
|
const currentHash = this.getCurrentHotUpdateHash(allEmittedFiles);
|
|
606
|
-
// This logic is needed as there are already cases when webpack doesn't emit any files physically.
|
|
607
|
-
// We've set noEmitOnErrors in webpack.config.js based on noEmitOnError from tsconfig.json,
|
|
608
|
-
// so webpack doesn't emit any files when noEmitOnErrors: true is set in webpack.config.js and
|
|
609
|
-
// there is a compilation error in the source code. On the other side, hmr generates new hot-update files
|
|
610
|
-
// on every change and the hash of the next hmr update is written inside hot-update.json file.
|
|
611
|
-
// Although webpack doesn't emit any files, hmr hash is still generated. The hash is generated per compilation no matter
|
|
612
|
-
// if files will be emitted or not. This way, the first successful compilation after fixing the compilation error generates
|
|
613
|
-
// a hash that is not the same as the one expected in the latest emitted hot-update.json file.
|
|
614
|
-
// As a result, the hmr chain is broken and the changes are not applied.
|
|
615
495
|
const isHashValid = nextHash
|
|
616
496
|
? this.expectedHashes[platform] === currentHash
|
|
617
497
|
: true;
|
|
@@ -630,7 +510,6 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
630
510
|
let hotHash;
|
|
631
511
|
const hotUpdateScripts = emittedFiles.filter((x) => x.endsWith(".hot-update.js"));
|
|
632
512
|
if (hotUpdateScripts && hotUpdateScripts.length) {
|
|
633
|
-
// the hash is the same for each hot update in the current compilation
|
|
634
513
|
const hotUpdateName = hotUpdateScripts[0];
|
|
635
514
|
const matcher = /^(.+)\.(.+)\.hot-update/gm;
|
|
636
515
|
const matches = matcher.exec(hotUpdateName);
|
|
@@ -646,7 +525,6 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
646
525
|
bundlerProcess.kill("SIGINT");
|
|
647
526
|
delete this.bundlerProcesses[platform];
|
|
648
527
|
}
|
|
649
|
-
// Tear down the Vite dev server we manage alongside the build watcher.
|
|
650
528
|
const viteServeProcess = this.viteServeProcesses[platform];
|
|
651
529
|
if (viteServeProcess) {
|
|
652
530
|
await this.$cleanupService.removeKillProcess(viteServeProcess.pid.toString());
|
|
@@ -655,7 +533,6 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
655
533
|
}
|
|
656
534
|
}
|
|
657
535
|
handleHMRMessage(message, platformData, projectData, prepareData) {
|
|
658
|
-
// handle new bundler hmr packets
|
|
659
536
|
this.$logger.trace(`Received message from ${projectData.bundler} process:`, message);
|
|
660
537
|
if (message.type !== "compilation") {
|
|
661
538
|
return;
|
|
@@ -663,7 +540,6 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
663
540
|
this.$logger.trace(`${capitalizeFirstLetter(projectData.bundler)} build done!`);
|
|
664
541
|
const files = message.data.emittedAssets.map((asset) => path.join(platformData.appDestinationDirectoryPath, this.$options.hostProjectModuleName, asset));
|
|
665
542
|
const staleFiles = message.data.staleAssets.map((asset) => path.join(platformData.appDestinationDirectoryPath, this.$options.hostProjectModuleName, asset));
|
|
666
|
-
// extract last hash from emitted filenames
|
|
667
543
|
const lastHash = (() => {
|
|
668
544
|
const absoluteFileNameWithLastHash = files.find((fileName) => fileName.endsWith("hot-update.js"));
|
|
669
545
|
if (!absoluteFileNameWithLastHash) {
|
|
@@ -676,7 +552,6 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
676
552
|
}
|
|
677
553
|
})();
|
|
678
554
|
if (!files.length) {
|
|
679
|
-
// ignore compilations if no new files are emitted
|
|
680
555
|
return;
|
|
681
556
|
}
|
|
682
557
|
this.emit(constants_1.BUNDLER_COMPILATION_COMPLETE, {
|
|
@@ -740,25 +615,20 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
740
615
|
return this.$projectConfigService.getValue(`bundler`, "webpack");
|
|
741
616
|
}
|
|
742
617
|
copyViteBundleToNative(distOutput, destDir, specificFiles = null, failOnError = false) {
|
|
743
|
-
// Clean and copy Vite output to native platform folder
|
|
744
618
|
if (debugLog) {
|
|
745
619
|
console.log(`Copying Vite bundle from "${distOutput}" to "${destDir}".`);
|
|
746
620
|
}
|
|
747
621
|
try {
|
|
748
622
|
if (specificFiles) {
|
|
749
|
-
// Selective mode: only copy specific files (incremental)
|
|
750
623
|
if (debugLog) {
|
|
751
624
|
console.log("Selective copy - copying specific files:", specificFiles);
|
|
752
625
|
}
|
|
753
|
-
// Ensure destination directory exists
|
|
754
626
|
this.$fs.createDirectory(destDir);
|
|
755
|
-
// Copy only the specified files
|
|
756
627
|
for (const file of specificFiles) {
|
|
757
628
|
const srcPath = path.join(distOutput, file);
|
|
758
629
|
const destPath = path.join(destDir, file);
|
|
759
630
|
if (!this.$fs.exists(srcPath))
|
|
760
631
|
continue;
|
|
761
|
-
// create parent dirs
|
|
762
632
|
this.$fs.createDirectory(path.dirname(destPath));
|
|
763
633
|
this.$fs.copyFile(srcPath, destPath);
|
|
764
634
|
if (debugLog) {
|
|
@@ -767,22 +637,16 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
767
637
|
}
|
|
768
638
|
}
|
|
769
639
|
else {
|
|
770
|
-
// Full build mode: clean and copy everything
|
|
771
640
|
if (debugLog) {
|
|
772
641
|
console.log("Full build: Copying all files.");
|
|
773
642
|
}
|
|
774
|
-
// Validate the source before touching the destination — cleaning
|
|
775
|
-
// destDir first would wipe a previously good bundle and leave an
|
|
776
|
-
// empty app folder behind a missing Vite output.
|
|
777
643
|
if (!this.$fs.exists(distOutput)) {
|
|
778
644
|
throw new Error(`Vite output directory does not exist: ${distOutput}`);
|
|
779
645
|
}
|
|
780
|
-
// Clean destination directory
|
|
781
646
|
if (this.$fs.exists(destDir)) {
|
|
782
647
|
this.$fs.deleteDirectory(destDir);
|
|
783
648
|
}
|
|
784
649
|
this.$fs.createDirectory(destDir);
|
|
785
|
-
// Copy all files from dist to platform destination
|
|
786
650
|
this.copyRecursiveSync(distOutput, destDir);
|
|
787
651
|
}
|
|
788
652
|
}
|
|
@@ -795,12 +659,9 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
795
659
|
}
|
|
796
660
|
}
|
|
797
661
|
getIncrementalFilesToCopy(emittedFiles) {
|
|
798
|
-
// For incremental builds, we need to determine which emitted files are likely affected
|
|
799
|
-
// by the source file changes
|
|
800
662
|
const filesToCopy = [];
|
|
801
663
|
const bundleFiles = emittedFiles.filter((file) => file.endsWith(".mjs") || file.endsWith(".js") || file.endsWith(".map"));
|
|
802
664
|
filesToCopy.push(...bundleFiles);
|
|
803
|
-
// Only copy assets if there are explicit asset-related changes
|
|
804
665
|
const assetFiles = emittedFiles.filter((file) => file.includes("assets/") ||
|
|
805
666
|
file.includes("static/") ||
|
|
806
667
|
file.includes("fonts/") ||
|
|
@@ -808,11 +669,9 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
808
669
|
if (assetFiles.length > 0) {
|
|
809
670
|
filesToCopy.push(...assetFiles);
|
|
810
671
|
}
|
|
811
|
-
// Remove duplicates and return
|
|
812
672
|
return [...new Set(filesToCopy)];
|
|
813
673
|
}
|
|
814
674
|
copyRecursiveSync(src, dest) {
|
|
815
|
-
// Ensure destination exists
|
|
816
675
|
this.$fs.createDirectory(dest);
|
|
817
676
|
const entries = this.$fs.readDirectory(src);
|
|
818
677
|
for (const name of entries) {
|
|
@@ -823,7 +682,6 @@ class BundlerCompilerService extends events_1.EventEmitter {
|
|
|
823
682
|
this.copyRecursiveSync(srcPath, destPath);
|
|
824
683
|
}
|
|
825
684
|
else if (lstats.isFile() || lstats.isSymbolicLink()) {
|
|
826
|
-
// create parent directory (copyFile will also ensure it, but keep explicit)
|
|
827
685
|
this.$fs.createDirectory(path.dirname(destPath));
|
|
828
686
|
this.$fs.copyFile(srcPath, destPath);
|
|
829
687
|
}
|
|
@@ -838,4 +696,3 @@ function capitalizeFirstLetter(val) {
|
|
|
838
696
|
return String(val).charAt(0).toUpperCase() + String(val).slice(1);
|
|
839
697
|
}
|
|
840
698
|
yok_1.injector.register("bundlerCompilerService", BundlerCompilerService);
|
|
841
|
-
//# sourceMappingURL=bundler-compiler-service.js.map
|
|
@@ -10,6 +10,7 @@ exports.CleanupService = void 0;
|
|
|
10
10
|
const path = require("path");
|
|
11
11
|
const decorators_1 = require("../common/decorators");
|
|
12
12
|
const yok_1 = require("../common/yok");
|
|
13
|
+
const detached_process_enums_1 = require("../detached-processes/detached-process-enums");
|
|
13
14
|
class CleanupService {
|
|
14
15
|
constructor($options, $staticConfig, $childProcess) {
|
|
15
16
|
this.$staticConfig = $staticConfig;
|
|
@@ -20,56 +21,56 @@ class CleanupService {
|
|
|
20
21
|
async addCleanupCommand(commandInfo) {
|
|
21
22
|
const cleanupProcess = await this.getCleanupProcess();
|
|
22
23
|
cleanupProcess.send({
|
|
23
|
-
messageType:
|
|
24
|
+
messageType: detached_process_enums_1.CleanupProcessMessage.AddCleanCommand,
|
|
24
25
|
commandInfo,
|
|
25
26
|
});
|
|
26
27
|
}
|
|
27
28
|
async removeCleanupCommand(commandInfo) {
|
|
28
29
|
const cleanupProcess = await this.getCleanupProcess();
|
|
29
30
|
cleanupProcess.send({
|
|
30
|
-
messageType:
|
|
31
|
+
messageType: detached_process_enums_1.CleanupProcessMessage.RemoveCleanCommand,
|
|
31
32
|
commandInfo,
|
|
32
33
|
});
|
|
33
34
|
}
|
|
34
35
|
async addRequest(requestInfo) {
|
|
35
36
|
const cleanupProcess = await this.getCleanupProcess();
|
|
36
37
|
cleanupProcess.send({
|
|
37
|
-
messageType:
|
|
38
|
+
messageType: detached_process_enums_1.CleanupProcessMessage.AddRequest,
|
|
38
39
|
requestInfo,
|
|
39
40
|
});
|
|
40
41
|
}
|
|
41
42
|
async removeRequest(requestInfo) {
|
|
42
43
|
const cleanupProcess = await this.getCleanupProcess();
|
|
43
44
|
cleanupProcess.send({
|
|
44
|
-
messageType:
|
|
45
|
+
messageType: detached_process_enums_1.CleanupProcessMessage.RemoveRequest,
|
|
45
46
|
requestInfo,
|
|
46
47
|
});
|
|
47
48
|
}
|
|
48
49
|
async addCleanupDeleteAction(filePath) {
|
|
49
50
|
const cleanupProcess = await this.getCleanupProcess();
|
|
50
51
|
cleanupProcess.send({
|
|
51
|
-
messageType:
|
|
52
|
+
messageType: detached_process_enums_1.CleanupProcessMessage.AddDeleteFileAction,
|
|
52
53
|
filePath,
|
|
53
54
|
});
|
|
54
55
|
}
|
|
55
56
|
async removeCleanupDeleteAction(filePath) {
|
|
56
57
|
const cleanupProcess = await this.getCleanupProcess();
|
|
57
58
|
cleanupProcess.send({
|
|
58
|
-
messageType:
|
|
59
|
+
messageType: detached_process_enums_1.CleanupProcessMessage.RemoveDeleteFileAction,
|
|
59
60
|
filePath,
|
|
60
61
|
});
|
|
61
62
|
}
|
|
62
63
|
async addCleanupJS(jsCommand) {
|
|
63
64
|
const cleanupProcess = await this.getCleanupProcess();
|
|
64
65
|
cleanupProcess.send({
|
|
65
|
-
messageType:
|
|
66
|
+
messageType: detached_process_enums_1.CleanupProcessMessage.AddJSFileToRequire,
|
|
66
67
|
jsCommand,
|
|
67
68
|
});
|
|
68
69
|
}
|
|
69
70
|
async removeCleanupJS(jsCommand) {
|
|
70
71
|
const cleanupProcess = await this.getCleanupProcess();
|
|
71
72
|
cleanupProcess.send({
|
|
72
|
-
messageType:
|
|
73
|
+
messageType: detached_process_enums_1.CleanupProcessMessage.RemoveJSFileToRequire,
|
|
73
74
|
jsCommand,
|
|
74
75
|
});
|
|
75
76
|
}
|
|
@@ -92,8 +93,6 @@ class CleanupService {
|
|
|
92
93
|
setShouldDispose(shouldDispose) {
|
|
93
94
|
this.shouldDispose = shouldDispose;
|
|
94
95
|
}
|
|
95
|
-
// TODO: Consider extracting this method to a separate service
|
|
96
|
-
// as it has the same logic as the one used in analytics-service
|
|
97
96
|
getCleanupProcess() {
|
|
98
97
|
return new Promise((resolve, reject) => {
|
|
99
98
|
const cleanupProcessArgs = this.getCleanupProcessArgs();
|
|
@@ -112,12 +111,11 @@ class CleanupService {
|
|
|
112
111
|
clearTimeout(timeoutId);
|
|
113
112
|
if (!isSettled) {
|
|
114
113
|
isSettled = true;
|
|
115
|
-
// In case we throw error here, CLI will break its execution.
|
|
116
114
|
reject(err);
|
|
117
115
|
}
|
|
118
116
|
});
|
|
119
117
|
cleanupProcess.on("message", (data) => {
|
|
120
|
-
if (data ===
|
|
118
|
+
if (data === detached_process_enums_1.DetachedProcessMessages.ProcessReadyToReceive) {
|
|
121
119
|
clearTimeout(timeoutId);
|
|
122
120
|
if (!isSettled) {
|
|
123
121
|
isSettled = true;
|
|
@@ -166,4 +164,3 @@ __decorate([
|
|
|
166
164
|
(0, decorators_1.cache)()
|
|
167
165
|
], CleanupService.prototype, "getCleanupProcess", null);
|
|
168
166
|
yok_1.injector.register("cleanupService", CleanupService);
|
|
169
|
-
//# sourceMappingURL=cleanup-service.js.map
|
|
@@ -82,7 +82,6 @@ class CocoaPodsPlatformManager {
|
|
|
82
82
|
_.each(allPodfiles, (podfileContent) => {
|
|
83
83
|
const platformMatch = platformRowRegExp.exec(podfileContent);
|
|
84
84
|
const podfilePathMatch = podfilePathRegExp.exec(podfileContent) || [];
|
|
85
|
-
// platform without version -> select it with highest priority
|
|
86
85
|
if (platformMatch && platformMatch[0] && !platformMatch[2]) {
|
|
87
86
|
selectedPlatformData = {
|
|
88
87
|
version: null,
|
|
@@ -91,7 +90,6 @@ class CocoaPodsPlatformManager {
|
|
|
91
90
|
};
|
|
92
91
|
return false;
|
|
93
92
|
}
|
|
94
|
-
// platform with version
|
|
95
93
|
if (platformMatch && platformMatch[0] && platformMatch[2]) {
|
|
96
94
|
if (!selectedPlatformData ||
|
|
97
95
|
semver.gt(semver.coerce(platformMatch[2]), semver.coerce(selectedPlatformData.version))) {
|
|
@@ -106,12 +104,6 @@ class CocoaPodsPlatformManager {
|
|
|
106
104
|
return selectedPlatformData;
|
|
107
105
|
}
|
|
108
106
|
shouldReplacePlatformSection(projectData, oldPodfilePlatformData, currentPodfilePlatformData) {
|
|
109
|
-
// The selected platform should be replaced in the following cases:
|
|
110
|
-
// 1. When the pod file is from App_Resources and the selected platform is not from App_Resources
|
|
111
|
-
// 2. When the pod file is from App_Resources, the selected platform is also from App_Resources
|
|
112
|
-
// and the pod's version is greater than the selected one
|
|
113
|
-
// 3. When the pod file doesn't have platform's version -> `platform :ios`
|
|
114
|
-
// 4. When the pod file has a version greater than the selected platform's version
|
|
115
107
|
const appResourcesPodfilePath = path.join(projectData.getAppResourcesDirectoryPath(), "iOS", constants_1.PODFILE_NAME);
|
|
116
108
|
const isFromAppResources = oldPodfilePlatformData.path !== appResourcesPodfilePath &&
|
|
117
109
|
currentPodfilePlatformData.path === appResourcesPodfilePath;
|
|
@@ -143,4 +135,3 @@ class CocoaPodsPlatformManager {
|
|
|
143
135
|
}
|
|
144
136
|
exports.CocoaPodsPlatformManager = CocoaPodsPlatformManager;
|
|
145
137
|
yok_1.injector.register("cocoaPodsPlatformManager", CocoaPodsPlatformManager);
|
|
146
|
-
//# sourceMappingURL=cocoapods-platform-manager.js.map
|