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

#1

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

0 Likes

#2

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.

0 Likes

#3

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

#4

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.

0 Likes

#5

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

0 Likes