[ 
https://issues.apache.org/jira/browse/ATLAS-3819?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17153087#comment-17153087
 ] 

Csaba Koncz edited comment on ATLAS-3819 at 7/7/20, 8:48 PM:
-------------------------------------------------------------

Added babel-loader for JavaScript source files: 
https://github.com/csabakoncz/atlas-newui/pull/14

 This opens up a further possibility, namely to bundle only the polyfills for 
the ES6 features we actually use.
 (right now we have all polyfills in the bundles because I included them all in 
index.ts: 
[https://github.com/csabakoncz/atlas-newui/pull/12/files#diff-f41e9d04a45c83f3b6f6e630f10117feR1)]

But with babel-preset-envs' useBuiltIns="usage" we can have Babel insert 
imports only for the polyfills in use. 
 ( [https://babeljs.io/docs/en/babel-preset-env#usebuiltins-usage 
|https://babeljs.io/docs/en/babel-preset-env#usebuiltins-usage])
|https://babeljs.io/docs/en/babel-preset-env#usebuiltins]Will try that too.|


was (Author: koncz):
Added babel-loader for JavaScript source files: 
[https://github.com/csabakoncz/atlas-newui/pull/14
]
This opens up a further possibility, namely to bundle only the polyfills for 
the ES6 features we actually use.
(right now we have all polyfills in the bundles because I included them all in 
index.ts: 
[https://github.com/csabakoncz/atlas-newui/pull/12/files#diff-f41e9d04a45c83f3b6f6e630f10117feR1)]

But with babel-preset-envs' useBuiltIns="usage" we can have Babel insert 
imports only for the polyfills in use. 
([|https://babeljs.io/docs/en/babel-preset-env#usebuiltins] 
[https://babeljs.io/docs/en/babel-preset-env#usebuiltins-usage] [)
|https://babeljs.io/docs/en/babel-preset-env#usebuiltins]Will try that too.

> Modernize client side technology stack
> --------------------------------------
>
>                 Key: ATLAS-3819
>                 URL: https://issues.apache.org/jira/browse/ATLAS-3819
>             Project: Atlas
>          Issue Type: Improvement
>          Components: atlas-webui
>    Affects Versions: 3.0.0
>            Reporter: Csaba Koncz
>            Priority: Major
>         Attachments: image-2020-07-04-16-42-10-643.png
>
>
> While RequireJS has its merits and advantages, it might be worth considering 
> replacing it with another technology.
> A bundle loader like Webpack would open up a number of possibilities:
> - use of ES6 modules, which immediately improves tooling support
> - use TypeScript, which improves tooling support even more
> - a manageable code base would enable refactoring of the JavaScript code so 
> that no logic happens in the module initialization code,
> which in turn would make it possible to write tests for the JavaScript logic.
> As a POC I created a NodeJS project that transforms the current dashboardv2 
> code into Webpack bundles and demonstrates
> that the UI is able to work without RequireJS.
> Right now the JavaScript sources and index.html are used unchanged,
> but the next step would be to start converting the source to ES6 modules.
> Here is the code: https://github.com/csabakoncz/atlas-newui
> The most important file there is `webpack.config.js` that takes over the role 
> of RequireJS.config.
> The other file of interest might be `src/index.ts` which demonstrates the 
> ability to use TypeScript code even now.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to