импорт не работает на версии узла 11.8.0 - PullRequest
0 голосов
/ 27 января 2019

Я пишу простую программу, которая использует объект, полный словарных слов.Я хочу импортировать этот объект из другого файла, так как он очень большой.При попытке импортировать его я получаю ошибку, которая выглядит так, будто узел не знает, что это такое.

Я уже пытался переустановить последнюю версию узла.

вот важный код

import {dict} from './words_dictionary'

и вот все это

import {dict} from './words_dictionary'


function exists(obj,str) {
  if(obj[str]) {
    return true
  } else {
    return false
  }
}
console.log(exists(dict,'hello'))

Вот суть словарного кода:

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}

Я ожидал истины, но получил эту ошибку:

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)

Редактировать: ES6 сейчасработает, но теперь я получаю сообщение об ошибке, что dict не определен, может быть, это как-то связано с размером файла, потому что я несколько раз проверял орфографические ошибки

Ответы [ 2 ]

0 голосов
/ 27 января 2019

Удалось ли вам использовать клавиатуру import в другом месте вашего кода? Проблема может заключаться в том, что вы не переносите свой код в ES5. Поскольку import является функцией ES6, она еще не полностью поддерживается Node. Если вы используете такой инструмент, как Babel, для переноса своего кода, вы можете решить эту проблему. Если вы не хотите этого делать, попробуйте использовать require.

Как уже отмечалось, в Node 9+ вы также можете использовать его в файлах .mjs с включенным флагом --experimental-modules.

node --experimental-modules file.mjs

Узел import Совместимость

0 голосов
/ 27 января 2019

поддерживается только с экспериментальным флагом, вы должны использовать флаг --experimental-modules.

Или просто использовать require как таковой или, если вы действительно хотите, вы можете передавать свой код с помощью browserify, babel или parcel или любым другим.

Я думаю, это должно работать, если вы запускаете такой код: node --experimental-modules index.mjs

Обратите внимание, что он использует расширение mjs (модульный javascript, я думаю)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...