JS view using bootstrap_4.1.3 doesn't work because popper.js is not found

Hello.

I’ve created interactive JS view that is using bootstrap_4.1.3 webDependency. It works fine when I execute the node “the regular way”, but when I turn the node into “Component” and try to execute it empty view is displayed. DevTools console show the following error:

Failed to load resource: net::ERR_FILE_NOT_FOUND
require.js:5 Uncaught Error: Script error for “popper.js”, needed by: js-lib/bootstrap/4_1_3/min/js/bootstrap.min
http://requirejs.org/docs/errors.html#scripterror
at makeError (require.js:5)
at HTMLScriptElement.onScriptError (require.js:5)
makeError @ require.js:5
onScriptError @ require.js:5

Everything works fine both ways if I switch from bootstrap_4.1.3 to bootstrap_3.3.6

Hi @ajbond,

would it be possible to share a minimal example to reproduce the issue? It can have some hand-typed dummy data and some basic visualisation in the JS View.

Could you please also comment on which KNIME AP do you use and on which OS?

Best regards,
Mischa.

Hi,

the difference between opening a single view and opening a view on a ‘Component’ is that in the latter case resources are loaded with requireJS. Bootstrap 4 is a bit special when loaded that way. If you can load the library from the web or can include it with the source code of the node, I suggest you follow the advise given in https://stackoverflow.com/questions/53757767/popper-js-error-when-including-bootstrap-4-in-requirejs-config
Hope this helps.

Cheers,
Christian

1 Like

Hi @lisovyi

Here is a minimal example. It is pretty much just a “Hello world” app. I’ve included KNIME AP file with the project. I’m using Win7x64.
bootstrap-test.zip (20.6 KB)

Hi @albrecht

Do you suggest to just include bootstrap and popper code into the node instead of using bootstrap webDependency, provided by Knime? It may be the option, but I think I’ll stick with bootstrap 3 for now.

If you can work with Bootstrap 3, you can definitely do that.
The Bootstrap 4 we ship is actually only the Bootstrap Grid and does not come with any of the other modules. Bootstrap offers different packaging options (see https://getbootstrap.com/docs/4.2/getting-started/contents/) amongst which you can find .bundle files which include Popper. If you can assume Internet access you can of course load these files directly from a CDN, or include a custom Bootstrap with your plugin if you need to use some of the Bootstrap 4 functionality.

Cheers,
Christian