mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-09-30 17:27:22 +08:00
The current bundling system with Rollup tries to determine when given a file if it’s an entry point (e.g. ui/ui.js) or not (e.g ui/someFile.js). If it’s not an entry point, it will bundle that file into the entry point JS file. So when we go to bundle ui/ui.js, it’ll find files like ui/someFile.js, and pull them into ui/ui.js, which ends up being a fully “rolled up” version of the ui folder. The problem comes when you nest these folders; ui/components/components.js is an entry point but the logic that the Rollup bundling code uses incorrectly detects it as a regular file. So you end up with ui/ui.js including a rolled-up version of ui/components/components.js, which itself is a rolled-up file. We then ship ui/ui.js and ui/components/components.js, meaning we’ve shipped components.js twice - once as a standalone file, and once because it was rolled up into ui.js. This CL fixes this by changing how we detect bundles, we now look for importing files whose parent directory is the same, so: - components/components.js is a bundle - but components/foo.js is not a bundle By making this change we also now correctly detect third_party bundles, with the exception of Acorn which is a special case, so we can lose the checks for that in our Rollup config. The logic here is somewhat duplicated between Rollup's config and the ESLint rule plugin that we have; I plan on making a follow-up CL that tries to define this logic in one place so if it changes in the future we can update the code in one place and have the linting & rollup update, plus we'll be able to use the ESLint tests as coverage to ensure we've not broken our bundling. Fixed: 1144123 Change-Id: Idd82a3ef69a09871867626a0d74266e25801243f Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2534202 Commit-Queue: Jack Franklin <jacktfranklin@chromium.org> Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>
188 lines
9.3 KiB
Plaintext
188 lines
9.3 KiB
Plaintext
# Copyright 2020 The Chromium Authors. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
import("./scripts/build/ninja/vars.gni")
|
|
|
|
devtools_module_entrypoint_sources = []
|
|
|
|
front_end_devtools_module_entrypoint_sources = []
|
|
generated_devtools_module_entrypoint_sources = []
|
|
|
|
foreach(module, devtools_module_entrypoint_sources) {
|
|
front_end_devtools_module_entrypoint_sources += [ "front_end/$module" ]
|
|
generated_devtools_module_entrypoint_sources +=
|
|
[ "$resources_out_dir/$module" ]
|
|
}
|
|
|
|
generated_typescript_entrypoint_sources = [
|
|
"$resources_out_dir/accessibility/accessibility-legacy.js",
|
|
"$resources_out_dir/accessibility/accessibility.js",
|
|
"$resources_out_dir/animation/animation-legacy.js",
|
|
"$resources_out_dir/animation/animation.js",
|
|
"$resources_out_dir/bindings/bindings-legacy.js",
|
|
"$resources_out_dir/bindings/bindings.js",
|
|
"$resources_out_dir/browser_debugger/browser_debugger-legacy.js",
|
|
"$resources_out_dir/browser_debugger/browser_debugger.js",
|
|
"$resources_out_dir/browser_sdk/browser_sdk.js",
|
|
"$resources_out_dir/changes/changes-legacy.js",
|
|
"$resources_out_dir/changes/changes.js",
|
|
"$resources_out_dir/client_variations/client_variations.js",
|
|
"$resources_out_dir/cm/cm.js",
|
|
"$resources_out_dir/cm_headless/cm_headless.js",
|
|
"$resources_out_dir/cm_modes/cm_modes.js",
|
|
"$resources_out_dir/color_picker/color_picker-legacy.js",
|
|
"$resources_out_dir/color_picker/color_picker.js",
|
|
"$resources_out_dir/common/common-legacy.js",
|
|
"$resources_out_dir/common/common.js",
|
|
"$resources_out_dir/component_helpers/component_helpers.js",
|
|
"$resources_out_dir/components/components-legacy.js",
|
|
"$resources_out_dir/components/components.js",
|
|
"$resources_out_dir/console/console-legacy.js",
|
|
"$resources_out_dir/console/console.js",
|
|
"$resources_out_dir/console_counters/console_counters-legacy.js",
|
|
"$resources_out_dir/console_counters/console_counters.js",
|
|
"$resources_out_dir/cookie_table/cookie_table-legacy.js",
|
|
"$resources_out_dir/cookie_table/cookie_table.js",
|
|
"$resources_out_dir/coverage/coverage-legacy.js",
|
|
"$resources_out_dir/coverage/coverage.js",
|
|
"$resources_out_dir/css_overview/css_overview-legacy.js",
|
|
"$resources_out_dir/css_overview/css_overview.js",
|
|
"$resources_out_dir/data_grid/data_grid-legacy.js",
|
|
"$resources_out_dir/data_grid/data_grid.js",
|
|
"$resources_out_dir/developer_resources/developer_resources-legacy.js",
|
|
"$resources_out_dir/developer_resources/developer_resources.js",
|
|
"$resources_out_dir/devices/devices.js",
|
|
"$resources_out_dir/diff/diff-legacy.js",
|
|
"$resources_out_dir/diff/diff.js",
|
|
"$resources_out_dir/dom_extension/dom_extension.js",
|
|
"$resources_out_dir/elements/elements-legacy.js",
|
|
"$resources_out_dir/elements/elements.js",
|
|
"$resources_out_dir/emulation/emulation-legacy.js",
|
|
"$resources_out_dir/emulation/emulation.js",
|
|
"$resources_out_dir/event_listeners/event_listeners-legacy.js",
|
|
"$resources_out_dir/event_listeners/event_listeners.js",
|
|
"$resources_out_dir/extensions/extensions-legacy.js",
|
|
"$resources_out_dir/extensions/extensions.js",
|
|
"$resources_out_dir/formatter/formatter-legacy.js",
|
|
"$resources_out_dir/formatter/formatter.js",
|
|
"$resources_out_dir/formatter_worker/formatter_worker.js",
|
|
"$resources_out_dir/har_importer/har_importer-legacy.js",
|
|
"$resources_out_dir/har_importer/har_importer.js",
|
|
"$resources_out_dir/heap_snapshot_model/heap_snapshot_model-legacy.js",
|
|
"$resources_out_dir/heap_snapshot_model/heap_snapshot_model.js",
|
|
"$resources_out_dir/heap_snapshot_worker/heap_snapshot_worker-legacy.js",
|
|
"$resources_out_dir/heap_snapshot_worker/heap_snapshot_worker.js",
|
|
"$resources_out_dir/help/help-legacy.js",
|
|
"$resources_out_dir/help/help.js",
|
|
"$resources_out_dir/host/host-legacy.js",
|
|
"$resources_out_dir/host/host.js",
|
|
"$resources_out_dir/i18n/i18n.js",
|
|
"$resources_out_dir/inline_editor/inline_editor-legacy.js",
|
|
"$resources_out_dir/inline_editor/inline_editor.js",
|
|
"$resources_out_dir/input/input-legacy.js",
|
|
"$resources_out_dir/input/input.js",
|
|
"$resources_out_dir/inspector_main/inspector_main-legacy.js",
|
|
"$resources_out_dir/inspector_main/inspector_main.js",
|
|
"$resources_out_dir/issues/issues-legacy.js",
|
|
"$resources_out_dir/issues/issues.js",
|
|
"$resources_out_dir/javascript_metadata/javascript_metadata-legacy.js",
|
|
"$resources_out_dir/javascript_metadata/javascript_metadata.js",
|
|
"$resources_out_dir/js_main/js_main-legacy.js",
|
|
"$resources_out_dir/js_main/js_main.js",
|
|
"$resources_out_dir/layer_viewer/layer_viewer-legacy.js",
|
|
"$resources_out_dir/layer_viewer/layer_viewer.js",
|
|
"$resources_out_dir/layers/layers-legacy.js",
|
|
"$resources_out_dir/layers/layers.js",
|
|
"$resources_out_dir/lighthouse/lighthouse-legacy.js",
|
|
"$resources_out_dir/lighthouse/lighthouse.js",
|
|
"$resources_out_dir/lighthouse_worker/LighthouseService.js",
|
|
"$resources_out_dir/lighthouse_worker/lighthouse_worker.js",
|
|
"$resources_out_dir/linear_memory_inspector/linear_memory_inspector-legacy.js",
|
|
"$resources_out_dir/linear_memory_inspector/linear_memory_inspector.js",
|
|
"$resources_out_dir/main/main-legacy.js",
|
|
"$resources_out_dir/main/main.js",
|
|
"$resources_out_dir/media/media-legacy.js",
|
|
"$resources_out_dir/media/media.js",
|
|
"$resources_out_dir/mobile_throttling/mobile_throttling-legacy.js",
|
|
"$resources_out_dir/mobile_throttling/mobile_throttling.js",
|
|
"$resources_out_dir/network/network-legacy.js",
|
|
"$resources_out_dir/network/network.js",
|
|
"$resources_out_dir/node_main/node_main-legacy.js",
|
|
"$resources_out_dir/node_main/node_main.js",
|
|
"$resources_out_dir/object_ui/object_ui-legacy.js",
|
|
"$resources_out_dir/object_ui/object_ui.js",
|
|
"$resources_out_dir/perf_ui/perf_ui-legacy.js",
|
|
"$resources_out_dir/perf_ui/perf_ui.js",
|
|
"$resources_out_dir/performance_monitor/performance_monitor-legacy.js",
|
|
"$resources_out_dir/performance_monitor/performance_monitor.js",
|
|
"$resources_out_dir/persistence/persistence-legacy.js",
|
|
"$resources_out_dir/persistence/persistence.js",
|
|
"$resources_out_dir/platform/platform.js",
|
|
"$resources_out_dir/profiler/profiler-legacy.js",
|
|
"$resources_out_dir/profiler/profiler.js",
|
|
"$resources_out_dir/protocol_client/protocol_client-legacy.js",
|
|
"$resources_out_dir/protocol_client/protocol_client.js",
|
|
"$resources_out_dir/protocol_monitor/protocol_monitor-legacy.js",
|
|
"$resources_out_dir/protocol_monitor/protocol_monitor.js",
|
|
"$resources_out_dir/quick_open/quick_open-legacy.js",
|
|
"$resources_out_dir/quick_open/quick_open.js",
|
|
"$resources_out_dir/resources/resources-legacy.js",
|
|
"$resources_out_dir/resources/resources.js",
|
|
"$resources_out_dir/root/root-legacy.js",
|
|
"$resources_out_dir/root/root.js",
|
|
"$resources_out_dir/screencast/screencast-legacy.js",
|
|
"$resources_out_dir/screencast/screencast.js",
|
|
"$resources_out_dir/sdk/sdk-legacy.js",
|
|
"$resources_out_dir/sdk/sdk.js",
|
|
"$resources_out_dir/search/search-legacy.js",
|
|
"$resources_out_dir/search/search.js",
|
|
"$resources_out_dir/security/security-legacy.js",
|
|
"$resources_out_dir/security/security.js",
|
|
"$resources_out_dir/services/services-legacy.js",
|
|
"$resources_out_dir/services/services.js",
|
|
"$resources_out_dir/settings/settings-legacy.js",
|
|
"$resources_out_dir/settings/settings.js",
|
|
"$resources_out_dir/snippets/snippets-legacy.js",
|
|
"$resources_out_dir/snippets/snippets.js",
|
|
"$resources_out_dir/source_frame/source_frame-legacy.js",
|
|
"$resources_out_dir/source_frame/source_frame.js",
|
|
"$resources_out_dir/sources/sources-legacy.js",
|
|
"$resources_out_dir/sources/sources.js",
|
|
"$resources_out_dir/startup/startup.js",
|
|
"$resources_out_dir/test_runner/test_runner.js",
|
|
"$resources_out_dir/text_editor/text_editor-legacy.js",
|
|
"$resources_out_dir/text_editor/text_editor.js",
|
|
"$resources_out_dir/text_utils/text_utils-legacy.js",
|
|
"$resources_out_dir/text_utils/text_utils.js",
|
|
"$resources_out_dir/theme_support/theme_support.js",
|
|
"$resources_out_dir/third_party/acorn/acorn.js",
|
|
"$resources_out_dir/third_party/i18n/i18n.js",
|
|
"$resources_out_dir/third_party/lighthouse/lighthouse-dt-bundle.js",
|
|
"$resources_out_dir/third_party/lit-html/lit-html.js",
|
|
"$resources_out_dir/third_party/marked/marked.js",
|
|
"$resources_out_dir/third_party/puppeteer/puppeteer.js",
|
|
"$resources_out_dir/timeline/timeline-legacy.js",
|
|
"$resources_out_dir/timeline/timeline.js",
|
|
"$resources_out_dir/timeline_model/timeline_model-legacy.js",
|
|
"$resources_out_dir/timeline_model/timeline_model.js",
|
|
"$resources_out_dir/toolbox_bootstrap/toolbox_bootstrap.js",
|
|
"$resources_out_dir/ui/components/components.js",
|
|
"$resources_out_dir/ui/ui-legacy.js",
|
|
"$resources_out_dir/ui/ui.js",
|
|
"$resources_out_dir/ui/utils/utils.js",
|
|
"$resources_out_dir/wasmparser_worker/wasmparser_worker.js",
|
|
"$resources_out_dir/web_audio/graph_visualizer/graph_visualizer.js",
|
|
"$resources_out_dir/web_audio/web_audio-legacy.js",
|
|
"$resources_out_dir/web_audio/web_audio.js",
|
|
"$resources_out_dir/webauthn/webauthn-legacy.js",
|
|
"$resources_out_dir/webauthn/webauthn.js",
|
|
"$resources_out_dir/worker_main/worker_main-legacy.js",
|
|
"$resources_out_dir/worker_main/worker_main.js",
|
|
"$resources_out_dir/worker_service/worker_service.js",
|
|
"$resources_out_dir/workspace/workspace-legacy.js",
|
|
"$resources_out_dir/workspace/workspace.js",
|
|
"$resources_out_dir/workspace_diff/workspace_diff-legacy.js",
|
|
"$resources_out_dir/workspace_diff/workspace_diff.js",
|
|
]
|