grgrzybek commented on PR #109:
URL:
https://github.com/apache/activemq-artemis-console/pull/109#issuecomment-3135931424
Actually it's not about rm-rfing `node_modules`. When working on
dependencies/devDependencies/peerDependencies I used some hacks to verify if
the bundlers are properly configured.
We have (here and in Hawtio too) two bundlers:
* tsup (esbuild + rollup) for _libraries_
* webpack for _apps_
The point is to not let duplicate code to sneak in anywhere.
For this purpose I check `tsup` produced file by filtering the bundle by
`^//` - it should _never_ contain any node_modules references. Here I see:
```
$ pwd
/home/ggrzybek/sources/github.com/apache/activemq-artemis-console/artemis-console-extension/artemis-extension/packages/artemis-console-plugin
✔
~/sources/github.com/apache/activemq-artemis-console/artemis-console-extension/artemis-extension/packages/artemis-console-plugin
[ggrzybek-console-fixes L|✚ 1]
13:38 $ grep '^//' dist/index.js
// src/globals.ts
// src/util/jmx.ts
// src/config-manager.ts
// src/artemis-service.ts
// src/artemis-preferences-service.ts
// src/table/ArtemisTable.tsx
// src/producers/ProducerTable.tsx
// src/consumers/ConsumerTable.tsx
// src/connections/ConnectionsTable.tsx
// src/sessions/SessionsTable.tsx
// src/queues/CreateQueue.tsx
// src/context.ts
// src/addresses/CreateAddress.tsx
//
../../node_modules/@monaco-editor/loader/lib/es/_virtual/_rollupPluginBabelHelpers.js
// ../../node_modules/state-local/lib/es/state-local.js
// ../../node_modules/@monaco-editor/loader/lib/es/config/index.js
// ../../node_modules/@monaco-editor/loader/lib/es/utils/curry.js
// ../../node_modules/@monaco-editor/loader/lib/es/utils/isObject.js
// ../../node_modules/@monaco-editor/loader/lib/es/validators/index.js
// ../../node_modules/@monaco-editor/loader/lib/es/utils/compose.js
// ../../node_modules/@monaco-editor/loader/lib/es/utils/deepMerge.js
// ../../node_modules/@monaco-editor/loader/lib/es/utils/makeCancelable.js
// ../../node_modules/@monaco-editor/loader/lib/es/loader/index.js
// ../../node_modules/@monaco-editor/loader/lib/es/index.js
// ../../node_modules/@monaco-editor/react/dist/index.mjs
// src/messages/SendMessage.tsx
// src/addresses/AddressesTable.tsx
// src/status/Status.tsx
// src/queues/QueuesTable.tsx
// src/messages/QueueSelect.tsx
// src/messages/MessagesTable.tsx
// src/messages/MessageView.tsx
// src/queues/QueuesView.tsx
// src/brokers/BrokerDiagram.tsx
// src/views/ArtemisTabView.tsx
// src/Artemis.tsx
// src/ArtemisTreeView.css
// src/ArtemisTreeView.tsx
// src/artemisJMX.css
// src/ArtemisJMXContent.css
// src/addresses/DeleteAddress.tsx
// src/queues/DeleteQueue.tsx
// src/views/ArtemisJMXTabView.tsx
// src/ArtemisJMXContent.tsx
// src/ArtemisJMX.tsx
// src/ArtemisPreferences.tsx
// src/ArtemisHeader.tsx
// src/plugin-ui.ts
// src/index.ts
// src/help.md
// src/index.ts
// Annotate the CommonJS export names for ESM import in node:
//# sourceMappingURL=index.js.map
```
which means that `tsup` didn't find:
* @monaco-editor/loader
* @monaco-editor/react
* state-local
modules among dependencies, so `tsup` simply put the source into target
bundle.
For webpack it's a bit more complicated, as we have chunks etc. But I simply
open the files in Gvim and do `:v/!\*\*\*.*node_modules/d` which gives me
something like:
```
!*** ../node_modules/@babel/runtime/helpers/esm/extends.js ***!
!*** ../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js ***!
!***
../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js ***!
!*** ../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js ***!
!*** ../node_modules/d3-axis/src/axis.js ***!
!*** ../node_modules/d3-axis/src/identity.js ***!
!*** ../node_modules/d3-axis/src/index.js ***!
!*** ../node_modules/d3-brush/src/brush.js ***!
!*** ../node_modules/d3-brush/src/constant.js ***!
...
(2405 lines like this)
```
Mind that this is the final bundle and it should contain everything -
including `node_modules` references. But these cryptic "module names" are
related to how Webpack works. Here I check if there are no weird
`../../../../../node_modules` which may be (but doesn't have to be) a sign that
there's something wrong.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact