J'écris un programme simple qui utilise un objet plein de mots du dictionnaire. Je veux importer cet objet à partir d'un fichier différent car il est très grand. Lorsque j'essaie 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 le code important:
import {dict} from './words_dictionary'
Et voici tout cela:
import {dict} from './words_dictionary'
function exists(obj,str) {
if(obj[str]) {
return true
} else {
return false
}
}
console.log(exists(dict, 'hello'))
Voici l'essentiel du code du dictionnaire:
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}
Je m'attendais à vrai, mais j'ai eu cette erreur:
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)
ECMAScript 6 fonctionne maintenant, mais je reçois maintenant l'erreur de dict non définie. Cela peut-il avoir quelque chose à voir avec la taille du fichier, car j'ai vérifié plusieurs fois les fautes d'orthographe?
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 souhaitez pas le faire, essayez plutôt d'utiliser require
.
Comme indiqué, dans Node.js 9+, vous pouvez également l'utiliser dans des fichiers .mjs avec le --experimental-modules
indicateur activé.
node --experimental-modules file.mjs
Il n'est pris en charge qu'avec un indicateur expérimental. Vous devez utiliser le --experimental-modules
drapeau.
Ou utilisez simplement require simple comme ça ou si vous le voulez vraiment, vous pouvez transpiler votre code avec browserify, babel ou colis ou autre.
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 je pense).
Vous essayez ça. J'espère que ça aide
const 'your_variable' = require('your_required_module or file_path')
Dans ton cas
const dict = require( './words_dictionary')