J'écris un programme simple qui utilise un objet plein de mots du dictionnaire. Je souhaite importer cet objet à partir d'un fichier différent car il est très volumineux. En essayant de l'importer, j'obtiens une erreur qui ressemble à Node.js ne sait pas ce que c'est.
J'ai déjà essayé de réinstaller la dernière version de Node.js.
Voici l'important code:
SyntaxError: Unexpected token { at new Script (vm.js:84:7) at createScript (vm.js:264:10) at Object.runInThisContext (vm.js:312:10) at Module._compile (internal/modules/cjs/loader.js:696:28) at Object.Module._extensions..js (internal/modules/cjs/loader.js:747:10) at Module.load (internal/modules/cjs/loader.js:628:32) at tryModuleLoad (internal/modules/cjs/loader.js:568:12) at Function.Module._load (internal/modules/cjs/loader.js:560:3) at Function.Module.runMain (internal/modules/cjs/loader.js:801:12) at executeUserCode (internal/bootstrap/node.js:526:15)
Et voici tout:
export let dict = {a: 1, aa: 1, aaa: 1, aah: 1, aahed: 1, aahing: 1, aahs: 1, aal: 1, aalii: 1, aaliis: 1, aals: 1, aam: 1, aani: 1, aardvark: 1, aardvarks: 1,...~3000 more}
Voici l'essentiel du code du dictionnaire: p>
import {dict} from './words_dictionary' function exists(obj,str) { if(obj[str]) { return true } else { return false } } console.log(exists(dict, 'hello'))
Je m'attendais à vrai, mais j'ai eu cette erreur:
import {dict} from './words_dictionary'
ECMAScript 6 fonctionne maintenant, mais j'obtiens maintenant le erreur de dict non définie. Cela pourrait-il avoir quelque chose à voir avec la taille du fichier, car j'ai vérifié plusieurs fois les fautes d'orthographe?
3 Réponses :
Il n'est pris en charge qu'avec un indicateur expérimental. Vous devriez utiliser l'indicateur --experimental-modules
.
Ou utilisez simplement require simple comme ça ou si vous le souhaitez vraiment, vous pouvez transpiler votre code avec browserify, babel ou parcel ou autre. p>
Je pense que cela devrait fonctionner si vous exécutez du code comme celui-ci:
node --experimental-modules index.mjs
Notez qu'il utilise l'extension mjs
(JavaScript modulaire I penser).
Avez-vous pu utiliser le clavier import
ailleurs dans votre code? Le problème ici peut être que vous ne transpilez pas votre code dans ECMAScript 5. Puisque import
est une fonctionnalité ECMAScript 6, elle n'a pas encore été entièrement prise en charge par Node.js. Si vous utilisez un outil comme Babel pour transpiler votre code, vous pouvez résoudre ce problème. Si vous ne voulez pas faire cela, essayez plutôt d'utiliser require
.
Comme indiqué, dans Node.js 9+, vous pouvez également l'utiliser dans des fichiers .mjs avec le - Indicateur expérimental-modules
activé.
node --experimental-modules file.mjs
Vous essayez ceci. J'espère que cela aide
const dict = require( './words_dictionary')
Dans votre cas
const 'your_variable' = require('your_required_module or file_path')
Q1: Est-ce que cela a déjà fonctionné, avec n'importe quelle version de NodeJS? Q2: Le fichier passe-t-il la validation JSON (par exemple, https://jsonlint.com )? Si Q1 = N et Q2 = Y, envisagez de remplacer «require» par «import» (et de modifier votre syntaxe en conséquence).