Naja.js – instalace bez NPM

cafesk8
Člen | 103
+
0
-

Zdravím,

chtěl jsem místo nette.ajax.js vyzkoušet Naja a nepoužívám NPM a s tím související Webpack. Pokusil jsem se dle dokumentace do šablony vložit naja ze složky dist na githubu, ale píše mi to pořád nějaké chyby.

@layout.latte

<script src="{$basePath}/js/vendor/Naja.js"></script>
<script src="{$basePath}/js/main.js"></script>

main.js

import naja from 'naja';
document.addEventListener('DOMContentLoaded', naja.initialize.bind(naja));

vyústí v tyto chybové hlášky:

  • Naja.js: ‚Naja.js:9 Uncaught ReferenceError: module is not defined at Naja.js:9‘
  • main.js: Uncaught SyntaxError: Cannot use import statement outside a module

Zkusil jsem i:

@layout.latte

<script src="{$basePath}/js/vendor/Naja.js" type="module"></script>
<script src="{$basePath}/js/main.js"></script>

to mi zase vyhodí:

  • Naja.js: Naja.js:7 Uncaught TypeError: Cannot set property ‚naja‘ of undefined
  • main.js: Uncaught SyntaxError: Cannot use import statement outside a module

Ještě mě napadlo:

@layout.latte

<script type="module" n:syntax="double">
	import naja from '{{$basePath}}/js/vendor/Naja.js';
	document.addEventListener('DOMContentLoaded', naja.initialize.bind(naja));
</script>

ale tam skončím zase s:

  • Uncaught SyntaxError: The requested module ‚/js/vendor/Naja.js‘ does not provide an export named ‚default‘

Vím, že to není přímo Nette-related ale spíš půjde o nějaký JS problém co se ES6 modlů a npm týče, ale i tak když jsem v dokumentaci četl:

„If you're not friends with npm, you can download the archive from Github and load the bundled script from dist directory into your site.“ – tak jsem přčedpokládal že to bude fungovat out-of-the-box."

cafesk8
Člen | 103
+
0
-

@jiripudil

jiri.pudil
Nette Blogger | 1029
+
0
-

main.js: Uncaught SyntaxError: Cannot use import statement outside a module

Pokud nepoužíváš moduly, nebude ti fungovat import. Pokud načteš soubor Naja.js přímo v browseru, instance knihovny je pak dostupná v globálním scope jako naja. Tedy v main.js by mělo stačit odstranit ten řádek s importem.

Naja.js: ‚Naja.js:9 Uncaught ReferenceError: module is not defined at Naja.js:9‘

Ten soubor je skutečně dist/Naja.js z repozitáře na Githubu? Tam snad nikdy řádek 9 nebyl :O

cafesk8
Člen | 103
+
0
-

Díky stačilo dát pryč ten řádek s importem :)
Ten řádek 9 tam opravdu nebyl, to jsem tam něco zkoušel připsat, moje chyba.

jiri.pudil napsal(a):

main.js: Uncaught SyntaxError: Cannot use import statement outside a module

Pokud nepoužíváš moduly, nebude ti fungovat import. Pokud načteš soubor Naja.js přímo v browseru, instance knihovny je pak dostupná v globálním scope jako naja. Tedy v main.js by mělo stačit odstranit ten řádek s importem.

Naja.js: ‚Naja.js:9 Uncaught ReferenceError: module is not defined at Naja.js:9‘

Ten soubor je skutečně dist/Naja.js z repozitáře na Githubu? Tam snad nikdy řádek 9 nebyl :O