Skip to content

sentry-vite-plugin cause javascript out of memory #512

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
850036165 opened this issue Dec 1, 2023 · 52 comments · Fixed by #513
Closed

sentry-vite-plugin cause javascript out of memory #512

850036165 opened this issue Dec 1, 2023 · 52 comments · Fixed by #513

Comments

@850036165
Copy link

850036165 commented Dec 1, 2023

Message from the maintainers:

Important

This issue is locked to avoid people piling on with confusion. We are not dismissing this concern. We have tried but cannot reproduce this issue. If you are able to provide a memory profile of a Vite build that shows excessive memory consumption, please open a new issue and point to this one!

Environment

SaaS (https://sentry.io/)

Steps to Reproduce

1.configed project using npx @sentry/wizard@latest -i sourcemaps
`import { defineConfig } from "vite";
import { sentryVitePlugin } from "@sentry/vite-plugin";

export default defineConfig({
build: {
sourcemap: true, // Source map generation must be turned on
},
plugins: [
// Put the Sentry vite plugin after all other plugins
sentryVitePlugin({
org: "",
project: "
",
authToken: process.env.SENTRY_AUTH_TOKEN,
}),
],
});`
2.run npm run build
3.got error
/usr/local/bin/npm run build

[email protected] build
vite build --mode production

[sentry-vite-plugin] Info: Using environment variables configured in ".env.sentry-build-plugin".
build.terserOptions is specified but build.minify is not set to use Terser. Note Vite now defaults to use esbuild for minification. If you still prefer Terser, set build.minify to "terser".
vite v4.3.9 building for production...
[sentry-vite-plugin] Info: Sending error and performance telemetry data to Sentry. To disable telemetry, set options.telemetry to false.
transforming (6) src/router/guard/index.tsBrowserslist: caniuse-lite is outdated. Please run:
npx update-browserslist-db@latest
Why you should do it regularly: https://github.com/browserslist/update-db#readme
✓ 4296 modules transformed.
rendering chunks (39)...
<--- Last few GCs --->

[3575:0x158008000] 37526 ms: Mark-Compact 4049.0 (4137.9) -> 4047.4 (4137.9) MB, 836.71 / 0.00 ms (average mu = 0.218, current mu = 0.037) allocation failure; scavenge might not succeed
[3575:0x158008000] 39532 ms: Mark-Compact 4055.3 (4137.9) -> 4054.6 (4167.6) MB, 1995.46 / 0.00 ms (average mu = 0.102, current mu = 0.005) allocation failure; scavenge might not succeed

<--- JS stacktrace --->

FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
1: 0x1028ca114 node::Abort() [/usr/local/bin/node]
2: 0x1028ca2fc node::ModifyCodeGenerationFromStrings(v8::Localv8::Context, v8::Localv8::Value, bool) [/usr/local/bin/node]
3: 0x102a51048 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [/usr/local/bin/node]
4: 0x102c2582c v8::internal::Heap::GarbageCollectionReasonToString(v8::internal::GarbageCollectionReason) [/usr/local/bin/node]
5: 0x102c24308 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/usr/local/bin/node]
6: 0x102c1ab20 v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/usr/local/bin/node]
7: 0x102c1b380 v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/usr/local/bin/node]
8: 0x102c00384 v8::internal::Factory::NewFillerObject(int, v8::internal::AllocationAlignment, v8::internal::AllocationType, v8::internal::AllocationOrigin) [/usr/local/bin/node]
9: 0x102fe7d94 v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [/usr/local/bin/node]
10: 0x103344c44 Builtins_CEntry_Return1_ArgvOnStack_NoBuiltinExit [/usr/local/bin/node]
11: 0x10901405c
12: 0x109a9123c
13: 0x1088a7ba8
14: 0x109bca03c
15: 0x109b09258
16: 0x108de33cc
17: 0x10879b734
18: 0x1033a0fb8 Builtins_PromiseFulfillReactionJob [/usr/local/bin/node]
19: 0x1032e2b94 Builtins_RunMicrotasks [/usr/local/bin/node]
20: 0x1032ba3f4 Builtins_JSRunMicrotasksEntry [/usr/local/bin/node]
21: 0x102b92c94 v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) [/usr/local/bin/node]
22: 0x102b93180 v8::internal::(anonymous namespace)::InvokeWithTryCatch(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) [/usr/local/bin/node]
23: 0x102b9335c v8::internal::Execution::TryRunMicrotasks(v8::internal::Isolate*, v8::internal::MicrotaskQueue*) [/usr/local/bin/node]
24: 0x102bba418 v8::internal::MicrotaskQueue::RunMicrotasks(v8::internal::Isolate*) [/usr/local/bin/node]
25: 0x102bbabb4 v8::internal::MicrotaskQueue::PerformCheckpoint(v8::Isolate*) [/usr/local/bin/node]
26: 0x102abec4c v8::internal::MaybeHandlev8::internal::Object v8::internal::(anonymous namespace)::HandleApiCallHelper(v8::internal::Isolate*, v8::internal::Handlev8::internal::HeapObject, v8::internal::Handlev8::internal::FunctionTemplateInfo, v8::internal::Handlev8::internal::Object, unsigned long*, int) [/usr/local/bin/node]
27: 0x102abe344 v8::internal::Builtin_HandleApiCall(int, unsigned long*, v8::internal::Isolate*) [/usr/local/bin/node]
28: 0x103344b24 Builtins_CEntry_Return1_ArgvOnStack_BuiltinExit [/usr/local/bin/node]
29: 0x10861d848
30: 0x1032ba50c Builtins_JSEntryTrampoline [/usr/local/bin/node]
31: 0x1032ba1f4 Builtins_JSEntry [/usr/local/bin/node]
32: 0x102b92cbc v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) [/usr/local/bin/node]
33: 0x102b92108 v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handlev8::internal::Object, v8::internal::Handlev8::internal::Object, int, v8::internal::Handlev8::internal::Object) [/usr/local/bin/node]
34: 0x102a6c9d4 v8::Function::Call(v8::Localv8::Context, v8::Localv8::Value, int, v8::Localv8::Value
) [/usr/local/bin/node]
35: 0x1027fcd3c node::InternalCallbackScope::Close() [/usr/local/bin/node]
36: 0x1027fd01c node::InternalMakeCallback(node::Environment*, v8::Localv8::Object, v8::Localv8::Object, v8::Localv8::Function, int, v8::Localv8::Value, node::async_context) [/usr/local/bin/node]
37: 0x10281348c node::AsyncWrap::MakeCallback(v8::Localv8::Function, int, v8::Localv8::Value
) [/usr/local/bin/node]
38: 0x1029971a4 node::StreamBase::CallJSOnreadMethod(long, v8::Localv8::ArrayBuffer, unsigned long, node::StreamBase::StreamBaseJSChecks) [/usr/local/bin/node]
39: 0x102998838 node::EmitToJSStreamListener::OnStreamRead(long, uv_buf_t const&) [/usr/local/bin/node]
40: 0x10299cb2c node::LibuvStreamWrap::OnUvRead(long, uv_buf_t const*) [/usr/local/bin/node]
41: 0x10299d2b0 node::LibuvStreamWrap::ReadStart()::$_1::__invoke(uv_stream_s*, long, uv_buf_t const*) [/usr/local/bin/node]
42: 0x1032a6f70 uv__stream_io [/usr/local/bin/node]
43: 0x1032ae874 uv__io_poll [/usr/local/bin/node]
44: 0x10329cd60 uv_run [/usr/local/bin/node]
45: 0x1027fd754 node::SpinEventLoopInternal(node::Environment*) [/usr/local/bin/node]
46: 0x10290d138 node::NodeMainInstance::Run(node::ExitCode*, node::Environment*) [/usr/local/bin/node]
47: 0x10290ced4 node::NodeMainInstance::Run() [/usr/local/bin/node]
48: 0x10289560c node::Start(int, char**) [/usr/local/bin/node]
49: 0x187ce10e0 start [/usr/lib/dyld]

exit code 134 (interrupted by signal 6: SIGABRT)

Expected Result

build success

Actual Result

if i comment out sentryVitePlugin and it also can build complete

Product Area

Issues - Source Maps

Link

https://tankmiles-dei.sentry.io/releases/

DSN

https://c030969be018368bb25c4c054b4204d9@o4505038212694016.ingest.sentry.io/4506313168060416

Version

No response

@getsantry
Copy link

getsantry bot commented Dec 1, 2023

Assigning to @getsentry/support for routing ⏲️

@JLuse JLuse transferred this issue from getsentry/sentry Dec 1, 2023
@AbhiPrasad
Copy link
Member

hey @850036165 - thanks for writing in!

Could you add some details about what vite version, vite plugin version, OS type/version you are using? This will help us try to reproduce the issue.

If you remove the vite plugin and set build.sourcemap to true, do you experience the OOM errors? Want to see if the issue with with sourcemap generation or with our uploading.

@850036165
Copy link
Author

Thanks AbhiPrasad!

Could you add some details about what vite version, vite plugin version, OS type/version you are using? This will help us try to reproduce the issue.
"vite": "4.3.9",
"@sentry/vite-plugin": "^2.10.2",
OS: dev:MacOS 14.1 / node.js 20.10, production: k8s jenkins/node.js@docker 18.18
If you remove the vite plugin and set build.sourcemap to true, do you experience the OOM errors? Want to see if the issue with with sourcemap generation or with our uploading.

  1. with vite plugin on and sourcemap true: dev->OOM; production->OOM
    jenkins log:

+ npm run build

> [email protected] build
> vite build --mode production

[sentry-vite-plugin] Info: Using environment variables configured in ".env.sentry-build-plugin".
fatal: detected dubious ownership in repository at '/home/jenkins/agent/workspace/tankmiles-devops9kwj4/vue3'
To add an exception for this directory, call:

	git config --global --add safe.directory /home/jenkins/agent/workspace/tankmiles-devops9kwj4/vue3
[sentry-vite-plugin] Warning: No release name provided. Will not inject release. Please set the `release.name` option to identify your release.
[sentry-vite-plugin] Warning: No release name provided. Will not create release. Please set the `release.name` option to identify your release.
�[33mbuild.terserOptions is specified but build.minify is not set to use Terser. Note Vite now defaults to use esbuild for minification. If you still prefer Terser, set build.minify to "terser".�[39m
�[36mvite v4.3.9 �[32mbuilding for production...�[36m�[39m
[sentry-vite-plugin] Info: Sending error and performance telemetry data to Sentry. To disable telemetry, set `options.telemetry` to `false`.
transforming...
�[32m✓�[39m 4317 modules transformed.

<--- Last few GCs --->

[188:0x718f670]    40499 ms: Scavenge (reduce) 2019.0 (2082.5) -> 2018.8 (2083.3) MB, 2.4 / 0.0 ms  (average mu = 0.589, current mu = 0.252) allocation failure; 
[188:0x718f670]    42157 ms: Mark-sweep (reduce) 2019.6 (2083.8) -> 2019.4 (2084.3) MB, 1450.2 / 0.0 ms  (average mu = 0.354, current mu = 0.131) allocation failure; GC in old space requested
<--- JS stacktrace --->
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
 1: 0xb7b150 node::Abort() [node]
 2: 0xa8c89a  [node]
 3: 0xd62ea0 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [node]
 4: 0xd63247 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [node]
 5: 0xf40945  [node]
 6: 0xf52e2d v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [node]
 7: 0xf2d52e v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [node]
 8: 0xf2e8f7 v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [node]
 9: 0xf0faca v8::internal::Factory::NewFillerObject(int, v8::internal::AllocationAlignment, v8::internal::AllocationType, v8::internal::AllocationOrigin) [node]
10: 0x12d357d v8::internal::Runtime_AllocateInOldGeneration(int, unsigned long*, v8::internal::Isolate*) [node]
11: 0x17001f9  [node]
Aborted (core dumped)
script returned exit code 134

3.with vite plugin on and sourcemap false:dev->success,release uploaded; production:OOM,

4.with vite plugin off and sourcemap true:dev->success;production:success,

+ npm run build

> [email protected] build
> vite build --mode production

�[33mbuild.terserOptions is specified but build.minify is not set to use Terser. Note Vite now defaults to use esbuild for minification. If you still prefer Terser, set build.minify to "terser".�[39m
�[36mvite v4.3.9 �[32mbuilding for production...�[36m�[39m
transforming...
�[32m✓�[39m 4317 modules transformed.
rendering chunks...
computing gzip size...
�[2mdist/�[22m�[2massets/�[22m�[32mlogo-58b93d87.svg                                                        �[39m�[1m�[2m    2.00 kB�[22m�[1m�[22m�[2m │ gzip:     0.89 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[32mvideo-waves-60d32ba1.svg                                                 �[39m�[1m�[2m    4.70 kB�[22m�[1m�[22m�[2m │ gzip:     1.46 kB�[22m
�[2mdist/�[22m�[32mindex.html                                                                      �[39m�[1m�[2m    4.99 kB�[22m�[1m�[22m�[2m │ gzip:     1.14 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[32mcimcLogo-d5d40107.png                                                    �[39m�[1m�[2m    6.22 kB�[22m�[1m�[22m
�[2mdist/�[22m�[2massets/�[22m�[32mlogo-2e780d3f.png                                                        �[39m�[1m�[2m    6.59 kB�[22m�[1m�[22m
�[2mdist/�[22m�[2massets/�[22m�[32mavatar-766f8b11.jpg                                                      �[39m�[1m�[2m   18.53 kB�[22m�[1m�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mindex-e3b0c442.css                                                       �[39m�[1m�[2m    0.00 kB�[22m�[1m�[22m�[2m │ gzip:     0.02 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mtank-model-fd41ec57.css                                                  �[39m�[1m�[2m    0.05 kB�[22m�[1m�[22m�[2m │ gzip:     0.07 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mtank-model-9eb87085.css                                                  �[39m�[1m�[2m    0.05 kB�[22m�[1m�[22m�[2m │ gzip:     0.07 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mfirmware-1321bf06.css                                                    �[39m�[1m�[2m    0.05 kB�[22m�[1m�[22m�[2m │ gzip:     0.07 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mpopular-author-205bdbab.css                                              �[39m�[1m�[2m    0.05 kB�[22m�[1m�[22m�[2m │ gzip:     0.07 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mcategories-percent-4507e7b1.css                                          �[39m�[1m�[2m    0.05 kB�[22m�[1m�[22m�[2m │ gzip:     0.07 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mpopular-author-9da51701.css                                              �[39m�[1m�[2m    0.05 kB�[22m�[1m�[22m�[2m │ gzip:     0.07 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mpopular-author-3ec4fdbb.css                                              �[39m�[1m�[2m    0.05 kB�[22m�[1m�[22m�[2m │ gzip:     0.07 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mbasic-information-b2c50d99.css                                           �[39m�[1m�[2m    0.05 kB�[22m�[1m�[22m�[2m │ gzip:     0.07 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mmenu-5359de0d.css                                                        �[39m�[1m�[2m    0.05 kB�[22m�[1m�[22m�[2m │ gzip:     0.06 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mdeviceConfigurationGuide-2d5299f2.css                                    �[39m�[1m�[2m    0.05 kB�[22m�[1m�[22m�[2m │ gzip:     0.07 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mtank-6b27e0b8.css                                                        �[39m�[1m�[2m    0.05 kB�[22m�[1m�[22m�[2m │ gzip:     0.07 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mtank-manage-dfdaa4ea.css                                                 �[39m�[1m�[2m    0.05 kB�[22m�[1m�[22m�[2m │ gzip:     0.07 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mcontent-period-analysis-db5247bd.css                                     �[39m�[1m�[2m    0.05 kB�[22m�[1m�[22m�[2m │ gzip:     0.07 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mcontent-period-analysis-b2730dd2.css                                     �[39m�[1m�[2m    0.05 kB�[22m�[1m�[22m�[2m │ gzip:     0.07 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mcontent-period-analysis-261ed01c.css                                     �[39m�[1m�[2m    0.05 kB�[22m�[1m�[22m�[2m │ gzip:     0.07 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mpublic-opinion-1fff887e.css                                              �[39m�[1m�[2m    0.07 kB�[22m�[1m�[22m�[2m │ gzip:     0.09 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mpublic-opinion-372d646d.css                                              �[39m�[1m�[2m    0.07 kB�[22m�[1m�[22m�[2m │ gzip:     0.09 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mpublic-opinion-0fb7a466.css                                              �[39m�[1m�[2m    0.07 kB�[22m�[1m�[22m�[2m │ gzip:     0.09 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mcertification-records-7ba11178.css                                       �[39m�[1m�[2m    0.09 kB�[22m�[1m�[22m�[2m │ gzip:     0.10 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mdefault-route-dfa8a645.css                                               �[39m�[1m�[2m    0.09 kB�[22m�[1m�[22m�[2m │ gzip:     0.10 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mdeviceConfiguration-ae53bb4a.css                                         �[39m�[1m�[2m    0.12 kB�[22m�[1m�[22m�[2m │ gzip:     0.12 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mlist-fb341ed8.css                                                        �[39m�[1m�[2m    0.12 kB�[22m�[1m�[22m�[2m │ gzip:     0.13 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mdevice-info-d673ea22.css                                                 �[39m�[1m�[2m    0.13 kB�[22m�[1m�[22m�[2m │ gzip:     0.12 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mtank-info-d72c30e9.css                                                   �[39m�[1m�[2m    0.13 kB�[22m�[1m�[22m�[2m │ gzip:     0.12 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mtank-info-4e163412.css                                                   �[39m�[1m�[2m    0.13 kB�[22m�[1m�[22m�[2m │ gzip:     0.12 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mDeviceMonitoring-57ed5787.css                                            �[39m�[1m�[2m    0.14 kB�[22m�[1m�[22m�[2m │ gzip:     0.14 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mbanner-0234517b.css                                                      �[39m�[1m�[2m    0.17 kB�[22m�[1m�[22m�[2m │ gzip:     0.15 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mprint-540a8ca3.css                                                       �[39m�[1m�[2m    0.20 kB�[22m�[1m�[22m�[2m │ gzip:     0.12 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mindex-68f6f2d8.css                                                       �[39m�[1m�[2m    0.21 kB�[22m�[1m�[22m�[2m │ gzip:     0.17 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35menterprise-certification-4444bd4e.css                                    �[39m�[1m�[2m    0.23 kB�[22m�[1m�[22m�[2m │ gzip:     0.17 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mmessage-box-98bcc400.css                                                 �[39m�[1m�[2m    0.24 kB�[22m�[1m�[22m�[2m │ gzip:     0.18 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mindex-b3d219e8.css                                                       �[39m�[1m�[2m    0.24 kB�[22m�[1m�[22m�[2m │ gzip:     0.17 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mindex-08801498.css                                                       �[39m�[1m�[2m    0.24 kB�[22m�[1m�[22m�[2m │ gzip:     0.17 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mindex-72f77fde.css                                                       �[39m�[1m�[2m    0.24 kB�[22m�[1m�[22m�[2m │ gzip:     0.17 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mindex-16a433eb.css                                                       �[39m�[1m�[2m    0.28 kB�[22m�[1m�[22m�[2m │ gzip:     0.21 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mpopular-content-77451fb4.css                                             �[39m�[1m�[2m    0.28 kB�[22m�[1m�[22m�[2m │ gzip:     0.17 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mchain-item-c9f3047b.css                                                  �[39m�[1m�[2m    0.30 kB�[22m�[1m�[22m�[2m │ gzip:     0.18 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35muser-panel-0210acf4.css                                                  �[39m�[1m�[2m    0.37 kB�[22m�[1m�[22m�[2m │ gzip:     0.22 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mdata-panel-9cac006a.css                                                  �[39m�[1m�[2m    0.42 kB�[22m�[1m�[22m�[2m │ gzip:     0.24 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35musage-overview-5aa3214d.css                                              �[39m�[1m�[2m    0.45 kB�[22m�[1m�[22m�[2m │ gzip:     0.25 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35minvite-d53166ca.css                                                      �[39m�[1m�[2m    0.46 kB�[22m�[1m�[22m�[2m │ gzip:     0.29 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mquick-operation-ec985fe2.css                                             �[39m�[1m�[2m    0.52 kB�[22m�[1m�[22m�[2m │ gzip:     0.26 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mHeader-74bc4081.css                                                      �[39m�[1m�[2m    0.58 kB�[22m�[1m�[22m�[2m │ gzip:     0.29 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mchain-item-e92f5dfd.css                                                  �[39m�[1m�[2m    0.59 kB�[22m�[1m�[22m�[2m │ gzip:     0.28 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mchain-item-ffb8f8af.css                                                  �[39m�[1m�[2m    0.59 kB�[22m�[1m�[22m�[2m │ gzip:     0.28 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mchain-item-f47f1b7d.css                                                  �[39m�[1m�[2m    0.59 kB�[22m�[1m�[22m�[2m │ gzip:     0.28 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mindex-74f778c0.css                                                       �[39m�[1m�[2m    0.69 kB�[22m�[1m�[22m�[2m │ gzip:     0.31 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mproject-e2bbce55.css                                                     �[39m�[1m�[2m    0.70 kB�[22m�[1m�[22m�[2m │ gzip:     0.32 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35msecurity-settings-770dbb09.css                                           �[39m�[1m�[2m    0.74 kB�[22m�[1m�[22m�[2m │ gzip:     0.27 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35massign-54e3736d.css                                                      �[39m�[1m�[2m    0.82 kB�[22m�[1m�[22m�[2m │ gzip:     0.37 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35massign-ed54ef13.css                                                      �[39m�[1m�[2m    0.82 kB�[22m�[1m�[22m�[2m │ gzip:     0.37 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mentrance-0165780b.css                                                    �[39m�[1m�[2m    0.83 kB�[22m�[1m�[22m�[2m │ gzip:     0.39 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mwork-place-9333cd8f.css                                                  �[39m�[1m�[2m    0.84 kB�[22m�[1m�[22m�[2m │ gzip:     0.40 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mindex-988430b2.css                                                       �[39m�[1m�[2m    1.29 kB�[22m�[1m�[22m�[2m │ gzip:     0.38 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mlist-6a098341.css                                                        �[39m�[1m�[2m    1.29 kB�[22m�[1m�[22m�[2m │ gzip:     0.38 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mExceptionStatus-1d81c23c.css                                             �[39m�[1m�[2m    1.37 kB�[22m�[1m�[22m�[2m │ gzip:     0.45 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mLogin-11138b21.css                                                       �[39m�[1m�[2m    3.13 kB�[22m�[1m�[22m�[2m │ gzip:     0.83 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mRegister-116ef933.css                                                    �[39m�[1m�[2m    3.13 kB�[22m�[1m�[22m�[2m │ gzip:     0.82 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mindex-15cb44e4.css                                                       �[39m�[1m�[2m    3.13 kB�[22m�[1m�[22m�[2m │ gzip:     0.83 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mindex-22cfe521.css                                                       �[39m�[1m�[2m    8.24 kB�[22m�[1m�[22m�[2m │ gzip:     2.59 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mDeviceMap-4769e1f8.css                                                   �[39m�[1m�[2m   10.10 kB�[22m�[1m�[22m�[2m │ gzip:     7.25 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mindex-23e22490.css                                                       �[39m�[1m�[2m   79.57 kB�[22m�[1m�[22m�[2m │ gzip:    22.54 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[35mindex-a0213de0.css                                                       �[39m�[1m�[2m  498.94 kB�[22m�[1m�[22m�[2m │ gzip:    65.58 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mcimcLogo-df8d2bbc.js                                                     �[39m�[1m�[2m    0.06 kB�[22m�[1m�[22m�[2m │ gzip:     0.08 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mthemes-d19b274e.js                                                       �[39m�[1m�[2m    0.13 kB�[22m�[1m�[22m�[2m │ gzip:     0.13 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mcarousel-ee6459bf.js                                                     �[39m�[1m�[2m    0.13 kB�[22m�[1m�[22m�[2m │ gzip:     0.13 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mDeviceType-06b43d9e.js                                                   �[39m�[1m�[2m    0.13 kB�[22m�[1m�[22m�[2m │ gzip:     0.13 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mDeviceChart-88b11ac9.js                                                  �[39m�[1m�[2m    0.13 kB�[22m�[1m�[22m�[2m │ gzip:     0.13 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mproject-list-306b716c.js                                                 �[39m�[1m�[2m    0.13 kB�[22m�[1m�[22m�[2m │ gzip:     0.13 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mDeviceHistory-bbec2e7f.js                                                �[39m�[1m�[2m    0.13 kB�[22m�[1m�[22m�[2m │ gzip:     0.14 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mchart-option-0ea789f7.js                                                 �[39m�[1m�[2m    0.15 kB�[22m�[1m�[22m�[2m │ gzip:     0.15 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mdepartment-5626af5f.js                                                   �[39m�[1m�[2m    0.16 kB�[22m�[1m�[22m�[2m │ gzip:     0.15 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36msettings-acb32a69.js                                                     �[39m�[1m�[2m    0.17 kB�[22m�[1m�[22m�[2m │ gzip:     0.15 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36malarm-count-6d59e052.js                                                  �[39m�[1m�[2m    0.17 kB�[22m�[1m�[22m�[2m │ gzip:     0.15 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mdata-overview-fb2581bb.js                                                �[39m�[1m�[2m    0.17 kB�[22m�[1m�[22m�[2m │ gzip:     0.15 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mcontent-source-08d7a9b8.js                                               �[39m�[1m�[2m    0.17 kB�[22m�[1m�[22m�[2m │ gzip:     0.15 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mdata-chain-growth-3d55293f.js                                            �[39m�[1m�[2m    0.17 kB�[22m�[1m�[22m�[2m │ gzip:     0.15 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36malarm-type-distribution-e793f8eb.js                                      �[39m�[1m�[2m    0.18 kB�[22m�[1m�[22m�[2m │ gzip:     0.15 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mcertification-bcdc9ef1.js                                                �[39m�[1m�[2m    0.18 kB�[22m�[1m�[22m�[2m │ gzip:     0.15 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mindex-88709325.js                                                        �[39m�[1m�[2m    0.33 kB�[22m�[1m�[22m�[2m │ gzip:     0.26 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36m403-e9819e58.js                                                          �[39m�[1m�[2m    0.35 kB�[22m�[1m�[22m�[2m │ gzip:     0.26 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36m404-c8d724dc.js                                                          �[39m�[1m�[2m    0.35 kB�[22m�[1m�[22m�[2m │ gzip:     0.26 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36m500-234646b5.js                                                          �[39m�[1m�[2m    0.35 kB�[22m�[1m�[22m�[2m │ gzip:     0.26 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mHeader-2fdbcc9d.js                                                       �[39m�[1m�[2m    0.51 kB�[22m�[1m�[22m�[2m │ gzip:     0.36 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mcertification.vue_vue_type_script_setup_true_lang-140e80d3.js            �[39m�[1m�[2m    0.58 kB�[22m�[1m�[22m�[2m │ gzip:     0.37 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mcategories-percent-887f8d67.js                                           �[39m�[1m�[2m    0.58 kB�[22m�[1m�[22m�[2m │ gzip:     0.38 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mbanner-1812cb9a.js                                                       �[39m�[1m�[2m    0.60 kB�[22m�[1m�[22m�[2m │ gzip:     0.39 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mindex-617ff3b3.js                                                        �[39m�[1m�[2m    0.65 kB�[22m�[1m�[22m�[2m │ gzip:     0.40 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mindex-209b5cc6.js                                                        �[39m�[1m�[2m    0.65 kB�[22m�[1m�[22m�[2m │ gzip:     0.40 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mindex-efa36a8a.js                                                        �[39m�[1m�[2m    0.65 kB�[22m�[1m�[22m�[2m │ gzip:     0.41 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mcarousel.vue_vue_type_script_setup_true_lang-13dcece1.js                 �[39m�[1m�[2m    0.74 kB�[22m�[1m�[22m�[2m │ gzip:     0.46 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mdevice-4af30330.js                                                       �[39m�[1m�[2m    0.79 kB�[22m�[1m�[22m�[2m │ gzip:     0.50 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mdata-chain-growth.vue_vue_type_script_setup_true_lang-52428636.js        �[39m�[1m�[2m    0.83 kB�[22m�[1m�[22m�[2m │ gzip:     0.37 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36malarm-count.vue_vue_type_script_setup_true_lang-46719b5b.js              �[39m�[1m�[2m    0.95 kB�[22m�[1m�[22m�[2m │ gzip:     0.60 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mExceptionStatus-929c4d2b.js                                              �[39m�[1m�[2m    0.96 kB�[22m�[1m�[22m�[2m │ gzip:     0.60 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mchain-item-bd96deab.js                                                   �[39m�[1m�[2m    1.05 kB�[22m�[1m�[22m�[2m │ gzip:     0.61 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mquick-operation-534d68c9.js                                              �[39m�[1m�[2m    1.07 kB�[22m�[1m�[22m�[2m │ gzip:     0.62 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mpopular-author-f7155100.js                                               �[39m�[1m�[2m    1.08 kB�[22m�[1m�[22m�[2m │ gzip:     0.59 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mpopular-author-2d485ab7.js                                               �[39m�[1m�[2m    1.08 kB�[22m�[1m�[22m�[2m │ gzip:     0.59 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mpopular-content-8aa8f119.js                                              �[39m�[1m�[2m    1.10 kB�[22m�[1m�[22m�[2m │ gzip:     0.58 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mpopular-author-a7908b59.js                                               �[39m�[1m�[2m    1.14 kB�[22m�[1m�[22m�[2m │ gzip:     0.62 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36moverview-01d572a9.js                                                     �[39m�[1m�[2m    1.19 kB�[22m�[1m�[22m�[2m │ gzip:     0.56 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mcontent-source.vue_vue_type_script_setup_true_lang-e8edb782.js           �[39m�[1m�[2m    1.27 kB�[22m�[1m�[22m�[2m │ gzip:     0.66 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mindex-5d38f630.js                                                        �[39m�[1m�[2m    1.28 kB�[22m�[1m�[22m�[2m │ gzip:     0.60 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mcertification-records-a7c7cc33.js                                        �[39m�[1m�[2m    1.35 kB�[22m�[1m�[22m�[2m │ gzip:     0.65 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36malarm-type-distribution.vue_vue_type_script_setup_true_lang-4bda5a0a.js  �[39m�[1m�[2m    1.38 kB�[22m�[1m�[22m�[2m │ gzip:     0.75 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mindex-763d8c69.js                                                        �[39m�[1m�[2m    1.40 kB�[22m�[1m�[22m�[2m │ gzip:     0.58 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mproject-list.vue_vue_type_script_setup_true_lang-dc35a3b9.js             �[39m�[1m�[2m    1.41 kB�[22m�[1m�[22m�[2m │ gzip:     0.80 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mDeviceMonitoring-e0bfe596.js                                             �[39m�[1m�[2m    1.54 kB�[22m�[1m�[22m�[2m │ gzip:     0.72 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36msecurity-settings-1f7cdc68.js                                            �[39m�[1m�[2m    1.57 kB�[22m�[1m�[22m�[2m │ gzip:     0.58 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mmessage-box-6f6f19cc.js                                                  �[39m�[1m�[2m    1.58 kB�[22m�[1m�[22m�[2m │ gzip:     0.97 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mupdate-110c6e3d.js                                                       �[39m�[1m�[2m    1.59 kB�[22m�[1m�[22m�[2m │ gzip:     0.82 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mexport-task-22b98651.js                                                  �[39m�[1m�[2m    1.69 kB�[22m�[1m�[22m�[2m │ gzip:     0.82 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36musage-overview-a89f4609.js                                               �[39m�[1m�[2m    1.71 kB�[22m�[1m�[22m�[2m │ gzip:     0.84 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mpublic-opinion-a436188c.js                                               �[39m�[1m�[2m    1.71 kB�[22m�[1m�[22m�[2m │ gzip:     0.71 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mexport-list-9d260fbf.js                                                  �[39m�[1m�[2m    1.75 kB�[22m�[1m�[22m�[2m │ gzip:     0.85 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mpublic-opinion-02a2de9b.js                                               �[39m�[1m�[2m    1.80 kB�[22m�[1m�[22m�[2m │ gzip:     0.69 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mpublic-opinion-4549a9b0.js                                               �[39m�[1m�[2m    1.80 kB�[22m�[1m�[22m�[2m │ gzip:     0.69 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36menterprise-certification-ea2d6b5b.js                                     �[39m�[1m�[2m    1.87 kB�[22m�[1m�[22m�[2m │ gzip:     0.84 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mtank-info-b729ee29.js                                                    �[39m�[1m�[2m    2.01 kB�[22m�[1m�[22m�[2m │ gzip:     0.80 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mtank-info-a979478e.js                                                    �[39m�[1m�[2m    2.01 kB�[22m�[1m�[22m�[2m │ gzip:     0.79 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mindex-e0c7f039.js                                                        �[39m�[1m�[2m    2.06 kB�[22m�[1m�[22m�[2m │ gzip:     0.78 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mcontent-publish-ratio-d9a8624b.js                                        �[39m�[1m�[2m    2.09 kB�[22m�[1m�[22m�[2m │ gzip:     1.14 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mcontent-publish-ratio-a6070fb8.js                                        �[39m�[1m�[2m    2.09 kB�[22m�[1m�[22m�[2m │ gzip:     1.14 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mdevice-a3a77144.js                                                       �[39m�[1m�[2m    2.09 kB�[22m�[1m�[22m�[2m │ gzip:     0.98 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36muser-panel-092f074e.js                                                   �[39m�[1m�[2m    2.11 kB�[22m�[1m�[22m�[2m │ gzip:     1.10 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mcontent-publish-ratio-377e7374.js                                        �[39m�[1m�[2m    2.13 kB�[22m�[1m�[22m�[2m │ gzip:     1.16 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mtank-d9e9de32.js                                                         �[39m�[1m�[2m    2.14 kB�[22m�[1m�[22m�[2m │ gzip:     0.84 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mdevice-info-c66814f5.js                                                  �[39m�[1m�[2m    2.16 kB�[22m�[1m�[22m�[2m │ gzip:     0.90 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mindex-12d4ef4d.js                                                        �[39m�[1m�[2m    2.17 kB�[22m�[1m�[22m�[2m │ gzip:     1.14 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mtank-model-f22af5da.js                                                   �[39m�[1m�[2m    2.18 kB�[22m�[1m�[22m�[2m │ gzip:     0.97 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mdata-overview.vue_vue_type_script_setup_true_lang-ef3b8443.js            �[39m�[1m�[2m    2.22 kB�[22m�[1m�[22m�[2m │ gzip:     1.21 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mDeviceChart.vue_vue_type_script_setup_true_lang-9f5331e0.js              �[39m�[1m�[2m    2.26 kB�[22m�[1m�[22m�[2m │ gzip:     1.03 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mdata-panel-c4fa4657.js                                                   �[39m�[1m�[2m    2.36 kB�[22m�[1m�[22m�[2m │ gzip:     0.70 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mDeviceType.vue_vue_type_script_setup_true_lang-65b26008.js               �[39m�[1m�[2m    2.50 kB�[22m�[1m�[22m�[2m │ gzip:     1.00 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mbasic-information-f029f919.js                                            �[39m�[1m�[2m    2.60 kB�[22m�[1m�[22m�[2m │ gzip:     0.94 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mtank-5581be3b.js                                                         �[39m�[1m�[2m    2.70 kB�[22m�[1m�[22m�[2m │ gzip:     1.01 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mlist-e2a69da6.js                                                         �[39m�[1m�[2m    2.80 kB�[22m�[1m�[22m�[2m │ gzip:     1.19 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mDeviceHistory.vue_vue_type_script_setup_true_lang-13b767ec.js            �[39m�[1m�[2m    2.81 kB�[22m�[1m�[22m�[2m │ gzip:     1.12 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mchain-item-cd14c055.js                                                   �[39m�[1m�[2m    2.84 kB�[22m�[1m�[22m�[2m │ gzip:     1.32 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mdependents-ce8ef906.js                                                   �[39m�[1m�[2m    2.84 kB�[22m�[1m�[22m�[2m │ gzip:     1.35 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mchain-item-cb9b3438.js                                                   �[39m�[1m�[2m    2.86 kB�[22m�[1m�[22m�[2m │ gzip:     1.31 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mchain-item-34a1fb74.js                                                   �[39m�[1m�[2m    2.86 kB�[22m�[1m�[22m�[2m │ gzip:     1.31 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mcontent-period-analysis-e5753b3b.js                                      �[39m�[1m�[2m    2.94 kB�[22m�[1m�[22m�[2m │ gzip:     1.47 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mcontent-period-analysis-ace00e4c.js                                      �[39m�[1m�[2m    2.94 kB�[22m�[1m�[22m�[2m │ gzip:     1.47 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mcontent-period-analysis-2f8e5127.js                                      �[39m�[1m�[2m    2.96 kB�[22m�[1m�[22m�[2m │ gzip:     1.49 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mdictionary-7b8817bb.js                                                   �[39m�[1m�[2m    3.35 kB�[22m�[1m�[22m�[2m │ gzip:     1.57 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mdevice-manage-ba05005f.js                                                �[39m�[1m�[2m    3.59 kB�[22m�[1m�[22m�[2m │ gzip:     1.57 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36msecret-key-bec5706d.js                                                   �[39m�[1m�[2m    3.60 kB�[22m�[1m�[22m�[2m │ gzip:     1.50 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mproject-702c2900.js                                                      �[39m�[1m�[2m    3.86 kB�[22m�[1m�[22m�[2m │ gzip:     1.81 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mdefault-route-795a67ba.js                                                �[39m�[1m�[2m    4.03 kB�[22m�[1m�[22m�[2m │ gzip:     1.96 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mdevice-type-d16e7293.js                                                  �[39m�[1m�[2m    4.41 kB�[22m�[1m�[22m�[2m │ gzip:     1.81 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mentrance-82fa1cee.js                                                     �[39m�[1m�[2m    4.42 kB�[22m�[1m�[22m�[2m │ gzip:     1.57 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36minvite-fe09faa1.js                                                       �[39m�[1m�[2m    4.69 kB�[22m�[1m�[22m�[2m │ gzip:     1.74 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mRegister-8f393344.js                                                     �[39m�[1m�[2m    4.98 kB�[22m�[1m�[22m�[2m │ gzip:     1.73 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mrole-07613ac0.js                                                         �[39m�[1m�[2m    5.21 kB�[22m�[1m�[22m�[2m │ gzip:     2.10 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36massign-2d8135fe.js                                                       �[39m�[1m�[2m    5.27 kB�[22m�[1m�[22m�[2m │ gzip:     2.05 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mbatch-61450e12.js                                                        �[39m�[1m�[2m    5.28 kB�[22m�[1m�[22m�[2m │ gzip:     2.07 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36massign-2d1e5268.js                                                       �[39m�[1m�[2m    5.31 kB�[22m�[1m�[22m�[2m │ gzip:     1.91 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mtank-30ae6265.js                                                         �[39m�[1m�[2m    5.35 kB�[22m�[1m�[22m�[2m │ gzip:     2.19 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mrole-07439ce9.js                                                         �[39m�[1m�[2m    5.43 kB�[22m�[1m�[22m�[2m │ gzip:     2.49 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mtank-model-2752ff09.js                                                   �[39m�[1m�[2m    5.76 kB�[22m�[1m�[22m�[2m │ gzip:     2.38 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mtank-manage-fc4da3c3.js                                                  �[39m�[1m�[2m    5.88 kB�[22m�[1m�[22m�[2m │ gzip:     2.03 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mwork-place-ec8e54ef.js                                                   �[39m�[1m�[2m    6.02 kB�[22m�[1m�[22m�[2m │ gzip:     2.71 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mmenu-1b8902ee.js                                                         �[39m�[1m�[2m    8.61 kB�[22m�[1m�[22m�[2m │ gzip:     3.02 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mcompany-6cdebcf8.js                                                      �[39m�[1m�[2m    8.92 kB�[22m�[1m�[22m�[2m │ gzip:     3.35 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mDeviceMap-2dc0bc85.js                                                    �[39m�[1m�[2m    9.30 kB�[22m�[1m�[22m�[2m │ gzip:     3.50 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mdeviceConfigurationGuide-a39aa9f2.js                                     �[39m�[1m�[2m    9.92 kB�[22m�[1m�[22m�[2m │ gzip:     3.00 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mclient-user-e641de60.js                                                  �[39m�[1m�[2m   10.02 kB�[22m�[1m�[22m�[2m │ gzip:     3.62 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mfirmware-b1a54abe.js                                                     �[39m�[1m�[2m   10.34 kB�[22m�[1m�[22m�[2m │ gzip:     4.29 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36muser-18a8c871.js                                                         �[39m�[1m�[2m   10.76 kB�[22m�[1m�[22m�[2m │ gzip:     3.86 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mlist-194afab0.js                                                         �[39m�[1m�[2m   12.79 kB�[22m�[1m�[22m�[2m │ gzip:     3.73 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mdeviceConfiguration-dda08901.js                                          �[39m�[1m�[2m   13.37 kB�[22m�[1m�[22m�[2m │ gzip:     4.13 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mdevice-model-b33ccd75.js                                                 �[39m�[1m�[2m   13.54 kB�[22m�[1m�[22m�[2m │ gzip:     4.29 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mindex-970d5ae9.js                                                        �[39m�[1m�[2m   13.89 kB�[22m�[1m�[22m�[2m │ gzip:     3.99 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mprint-91614479.js                                                        �[39m�[1m�[2m   15.72 kB�[22m�[1m�[22m�[2m │ gzip:     5.61 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36muser-332d56e4.js                                                         �[39m�[1m�[2m   19.07 kB�[22m�[1m�[22m�[2m │ gzip:     4.86 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mLogin-dc7dd73a.js                                                        �[39m�[1m�[2m   20.34 kB�[22m�[1m�[22m�[2m │ gzip:     7.38 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mindex-a19c4011.js                                                        �[39m�[1m�[2m   88.02 kB�[22m�[1m�[22m�[2m │ gzip:    25.33 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mindex-8b1fb0eb.js                                                        �[39m�[1m�[2m  238.64 kB�[22m�[1m�[22m�[2m │ gzip:    82.60 kB�[22m
�[2mdist/�[22m�[2massets/�[22m�[36mindex-c7e08ac7.js                                                        �[39m�[1m�[33m5,002.17 kB�[39m�[22m�[2m │ gzip: 1,429.96 kB�[22m
�[33m
(!) Some chunks are larger than 2000 kBs after minification. Consider:
- Using dynamic import() to code-split the application
- Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks
- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.�[39m
�[32m✓ built in 38.84s�[39m

5.with vite plugin off and sourcemap off: all success

@Radiergummi
Copy link

Seconded, this happens for us, too. Building in BitBucket Pipelines, OOM after setting up sentry-vite-plugin with sourcemap upload enabled.

  • sentry-vite-plugin: 2.10.2
  • @sentry/vue: 7.84.0
  • vite 3.2.7

This happens intermittently, some builds work, some builds fail. I already assigned 3072mb RAM to the builder, so something is definitely out of the orderly here.

Relevant build log
getsentry/sentry-javascript#15 [builder 6/6] RUN yarn run build:ci --mode staging
getsentry/sentry-javascript#15 sha256:8f78e506c2e60740fbfae6d27e45c1b467a10084ea4be13662228a7b648fd026
getsentry/sentry-javascript#15 0.417 yarn run v1.22.19
getsentry/sentry-javascript#15 0.474 $ vite build --mode staging
getsentry/sentry-javascript#15 1.170 vite v3.2.7 building for staging...
getsentry/sentry-javascript#15 1.225 [sentry-vite-plugin] Info: Sending error and performance telemetry data to Sentry. To disable telemetry, set `options.telemetry` to `false`.
getsentry/sentry-javascript#15 1.297 transforming...
getsentry/sentry-javascript#15 27.71 ✓ 2026 modules transformed.
getsentry/sentry-javascript#15 31.92 rendering chunks...
getsentry/sentry-javascript#15 157.2 Killed
getsentry/sentry-javascript#15 157.3 error Command failed with exit code 137.
getsentry/sentry-javascript#15 157.3 info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
getsentry/sentry-javascript#15 ERROR: executor failed running [/bin/sh -c yarn run build:ci --mode $APP_MODE]: exit code: 137
------
 > [builder 6/6] RUN yarn run build:ci --mode staging:
------
executor failed running [/bin/sh -c yarn run build:ci --mode $APP_MODE]: exit code: 137

@Lms24
Copy link
Member

Lms24 commented Dec 4, 2023

Are you by chance using firebase? We previously received reports about OOM errors occuring in projects that use the firebase Npm package (getsentry/sentry-javascript#9383, getsentry/sentry-javascript#9096 (comment)). Updating the package seemed to fix this.

@850036165
Copy link
Author

Are you by chance using firebase? We previously received reports about OOM errors occuring in projects that use the firebase Npm package (#9383, #9096 (comment)). Updating the package seemed to fix this.

no, i didn't use this package.

@Radiergummi
Copy link

Are you by chance using firebase? We previously received reports about OOM errors occuring in projects that use the firebase Npm package (#9383, #9096 (comment)). Updating the package seemed to fix this.

No Firebase for me either, but maybe it's a shared dependency?

@lforst
Copy link
Member

lforst commented Dec 4, 2023

No Firebase for me either, but maybe it's a shared dependency?

@850036165 @Radiergummi Yeah, can you try upgrading your dependencies and see if that fixes things? In general the Sentry vite plugin doesn't do anything too computationally expensive I believe.

@kYem
Copy link

kYem commented Dec 6, 2023

I just run into it as well when trying to setup vite plugin using sentry wizzard.

sourcemap enabled and sentryVitePlugin

> vite build

[sentry-vite-plugin] Info: Using environment variables configured in ".env.sentry-build-plugin".
vite v4.5.0 building for production...
[sentry-vite-plugin] Info: Sending error and performance telemetry data to Sentry. To disable telemetry, set `options.telemetry` to `false`.
node_modules/flexsearch/dist/flexsearch.bundle.js (23:33) Use of eval in "node_modules/flexsearch/dist/flexsearch.bundle.js" is strongly discouraged as it poses security risks and may cause issues with minification.
✓ 5595 modules transformed.

rendering chunks (3)...
<--- Last few GCs --->

[8023:0x128078000]    33282 ms: Scavenge (reduce) 4027.0 (4142.2) -> 4026.7 (4142.7) MB, 5.0 / 0.0 ms  (average mu = 0.432, current mu = 0.303) allocation failure;
[8023:0x128078000]    35495 ms: Mark-sweep (reduce) 4028.4 (4144.0) -> 4028.2 (4144.7) MB, 1963.7 / 0.0 ms  (average mu = 0.253, current mu = 0.131) allocation failure; GC in old space requested


<--- JS stacktrace --->

FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
 1: 0x10492fc40 node::Abort() [/Users/kes/.nvm/versions/node/v18.18.2/bin/node]

sourcemap enabled, without sentryVitePlugin

> vite build

vite v4.5.0 building for production...
node_modules/flexsearch/dist/flexsearch.bundle.js (23:33) Use of eval in "node_modules/flexsearch/dist/flexsearch.bundle.js" is strongly discouraged as it poses security risks and may cause issues with minification.
✓ 5594 modules transformed.
✓ built in 31.12s
npm run build  94.37s user 8.39s system 321% cpu 31.921 total

Increasing max memory used to 8GB worked.

> NODE_OPTIONS=--max-old-space-size=8192 vite build

[sentry-vite-plugin] Info: Using environment variables configured in ".env.sentry-build-plugin".
vite v4.5.0 building for production...
[sentry-vite-plugin] Info: Sending error and performance telemetry data to Sentry. To disable telemetry, set `options.telemetry` to `false`.
node_modules/flexsearch/dist/flexsearch.bundle.js (23:33) Use of eval in "node_modules/flexsearch/dist/flexsearch.bundle.js" is strongly discouraged as it poses security risks and may cause issues with minification.
✓ 5595 modules transformed.

....
build/assets/index-a34f4e16.js                                              64.95 kB │ gzip:    23.33 kB │ map:    251.61 kB
build/assets/index-f8a37c58.js                                           8,620.20 kB │ gzip: 2,565.32 kB │ map: 24,272.34 kB

(!) Some chunks are larger than 500 kBs after minification. Consider:
- Using dynamic import() to code-split the application
- Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks
- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.
> Found 6 files
> Analyzing 6 sources
> Analyzing completed in 0.116s
> Adding source map references
> Bundling completed in 1.123s
> Bundled 6 files for upload
> Bundle ID: e0e63b40-801d-55ad-84f2-6f2915bab739
> Optimizing completed in 0.046s
> Uploading completed in 3.325s
> Uploaded files to Sentry
> Processing completed in 0.399s
> File upload complete (processing pending on server)
...
> Release: ea04fb85188d79e46c700fb306c08be004f1a3f5
> Dist: None
> Upload type: artifact bundle

[sentry-vite-plugin] Info: Successfully uploaded source maps to Sentry
✓ built in 44.95s
npm run build  102.16s user 12.67s system 249% cpu 46.052 total

We do have relatively large code base, so not quite sure , but based on monitoring, it peak above 5GB before finishing.

What is interesting is that when enabled, the transformed module count increased from 5594 modules transformed. to 5595 modules transformed.

@drantini
Copy link

drantini commented Dec 9, 2023

I also have this issue, I do however use 'firebase' package but I upgraded/updated it to the latest version and It also runs OOM for me in production, building on my local machine works fine.
EDIT:
without 'sentryVitePlugin' it also throws OOM, after setting 'sourcemap' in vite config to 'false' (also without 'sentryVitePlugin') it doesnt throw OOM anymore

@smakhtin
Copy link

Any updates on this?

@Lms24
Copy link
Member

Lms24 commented Dec 15, 2023

Hi, no concrete updates unfortunately, sorry. Based on all we know, this is caused by other libraries for some reason increasing memory consumption when source maps are generated. We're not entirely sure if and how our plugin could be causing this or what kind of interplay is going on here. Also, the symptoms described in this issue seem to differ.

If anyone can provide us a minimal reproduction we'd greatly appreciate it!

@FranRom
Copy link

FranRom commented Dec 21, 2023

Experiencing the same problem if somebody found a solution...

@getsantry getsantry bot moved this to Waiting for: Product Owner in GitHub Issues with 👀 2 Apr 5, 2024
@lforst
Copy link
Member

lforst commented Apr 5, 2024

@mvarendorff Thanks for the detailed investigation! It indeed seems like an upstream performance issue but it probably didn't help that we were generating a lot of unnecessary mappings.

If anybody else is able to share their findings trying out new vite/rollup versions, that would be awesome.

@Stanzilla
Copy link

For our CI it was also fixed by updating @sentry/vite-plugin from 2.16.0 to 2.16.1

@getsantry getsantry bot moved this to Waiting for: Product Owner in GitHub Issues with 👀 2 Apr 5, 2024
@lforst
Copy link
Member

lforst commented Apr 8, 2024

Okay, I'm gonna go ahead and close this issue. For anybody running into this, it seems like the best solution is to upgrade vite to version 4.4.9 and @sentry/vite-plugin to version 2.16.1. Both packages introduced performance/memory consumption improvements in those versions. Feel free to ping me here if you have any new findings (in case the issue persists)!

@Samuelmm1997
Copy link

Okay, I'm gonna go ahead and close this issue. For anybody running into this, it seems like the best solution is to upgrade vite to version 4.4.9 and @sentry/vite-plugin to version 2.16.1. Both packages introduced performance/memory consumption improvements in those versions. Feel free to ping me here if you have any new findings (in case the issue persists)!

I have vite version 4.4.9 and @sentry/vite-plugin version 2.16.1 and still experiencing this issue

@hmellahi
Copy link

@Samuelmm1997 Did you manage to solve it? if so, can you share your solution, please?
I have vite version 5.0.12 and @sentry/vite-plugin version 2.16.1 and am still experiencing this issue.

@AbhiPrasad
Copy link
Member

AbhiPrasad commented Apr 18, 2024

@Samuelmm1997 @hmellahi does the issue happen when you generate sourcemaps in general? Or just when you use the Sentry vite plugin?

Any kind of reproduction would help us a lot debug further! Thanks for the help

@hmellahi
Copy link

Hello @AbhiPrasad, thank you for your quick response. I've created an issue about the problem I'm having. Thanks for checking it out!

#527

@victorbadila
Copy link

I have the latest versions of vite and @sentry/vite-plugin and still get the OOM errors. It mostly seems to fail during the build with github-actions

@lforst
Copy link
Member

lforst commented May 2, 2024

@victorbadila Please try to provide reproduction or a memory profile. Thank you!

@victorbadila
Copy link

Turns out it was the vite build that was failing with OOM when generating the source maps even if I removed the Sentry plugin from the equation, thus not related to this project. I excluded "node_modules" and everything went fine.

@vjpr
Copy link

vjpr commented May 19, 2024

Same issue with sveltekit...

"@sentry/sveltekit": "^8.2.1"
"vite": "^4.5.3",
"svelte": "^4.0.5",
"@sveltejs/kit": "^1.20.4",

@lforst
Copy link
Member

lforst commented May 21, 2024

If you experience this issue, please share reproduction or a memory profile. Thank you!

If you can't provide any of the two, please prefer thumbs-up over new comments.

@baharalidurrani
Copy link

baharalidurrani commented Jul 2, 2024

I can’t capture the profile of the failed job on GitLab as the process exits on failing. But here's a profile of a successful build on my local machine using sourcemaps. I'm not sure if it helps. (Generated using vite build --mode production --profile)
vite-profile-0.cpuprofile

Here's another one without sourcemaps:
nomaps-vite-profile-0.cpuprofile

(These profiles can be viewed using https://www.speedscope.app or VS Code)

Here are the scripts in my CI file:

    - yarn install --immutable --immutable-cache
    - yarn test
    - yarn lint
    - yarn build:production

If I skip the test(vitest) and lint(eslint) steps then it builds successfully.

Orignal issue: #565

@EvgeniyGordinskiy
Copy link

EvgeniyGordinskiy commented Jul 10, 2024

The same issue with Vite and Nuxt

  • "vite": "^4.5.2",
  • "@vitejs/plugin-vue": "^4.4.0",
  • "@sentry/vite-plugin": "^2.20.1",
  • "nuxt": "3.8.0"

@lforst
Copy link
Member

lforst commented Jul 10, 2024

@baharalidurrani Thanks for the cpu profile but I think we need a memory profile instead.

@lforst
Copy link
Member

lforst commented Jul 10, 2024

@EvgeniyGordinskiy try to upgrade vite to the latest version please. Yours is already quite dated. The suspicion right now is that vite generates source maps expensively and there is nothing we can do.

@EvgeniyGordinskiy
Copy link

@lforst I still have it for vite 5.3.3
Maybe I miss something in the config?

sentryVitePlugin({
    org: 'x',
    project: 'x',
    debug: true,
    telemetry: true,
    sourcemaps: {
      assets: ['.output/public'],
      ignore: ['node_modules'],
    },
    release: {
      name: process.env.x,
      deploy: {
        env: process.env.x,
        url: `~${process.env.x}`,
        name: process.env.x
      }
    },
    authToken: process.env.x,
  })

@lforst
Copy link
Member

lforst commented Jul 10, 2024

@EvgeniyGordinskiy no that config looks fine. We need someone with this problem to provide a memory profile, otherwise we cannot resolve this issue.

@lforst
Copy link
Member

lforst commented Jul 10, 2024

Actually, let me lock this issue and say the following:

Important

This issue is locked to avoid people piling on with confusion. We are not dismissing this concern. We have tried but cannot reproduce this issue. If you are able to provide a memory profile of a Vite build that shows excessive memory consumption, please open a new issue and point to this one!

@getsentry getsentry locked and limited conversation to collaborators Jul 10, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
Archived in project
Archived in project