Импорт Javascript не работает в коде Visual Studio - PullRequest
0 голосов
/ 28 мая 2019

Я не могу импортировать что-либо в файлы javascript на моем веб-сайте, я пробовал много вещей, но это не работает.

Итак, я хочу импортировать файл .json в файл .js, используя ключевое слово import, но это не работает. Другая проблема заключается в том, что код Visual Studio не выдает ошибку, а консоль ...

main.js импортная часть

import dropDownList from "./navigationList.json"; //This is line number 1

console.log(dropDownList.shop.kits);

файл navigationList.json

{
    "shop": {
        "kits": "DIY Physics Kits",
        "merch": "Merchendise"
    },

    "learn": {
        "first-sub": "Mechanics",
        "second-sub": "Miscellaneous"
    }
}

Ошибка консоли:

mainJS.js:1 Uncaught SyntaxError: Unexpected identifier

Консоль говорит, что в моем импорте есть Uncaught SyntaxError, и это заставляет меня делать мой код длинным и без импорта, что отстой. Пожалуйста, помогите мне

Ответы [ 2 ]

1 голос
/ 28 мая 2019

navigation_list.json

{
    "shop": {
        "kits": "DIY Physics Kits",
        "merch": "Merchendise"
    },

    "learn": {
        "first-sub": "Mechanics",
        "second-sub": "Miscellaneous"
    }
}

main.js

var navigation_list = require('./navigation_list.json');
console.log(`>>>> Returned JSON data: ${navigation_list.shop.kits}`);

Завершить вывод здесь:

1 голос
/ 28 мая 2019

Синтаксис import является частью модулей ES6. Похоже, вы используете Node.js, который по умолчанию не поддерживает модули ES6. Однако Node.js имеет экспериментальную поддержку для модулей ES6 .

  1. Переименуйте файл с расширением .mjs:
mv mainJS.js mainJS.mjs
  1. Запустите его с флагом --experimental-modules:
node --experimental-modules mainJS.mjs

Я проверил это с вашим кодом, и он работает:

% node --experimental-modules main.mjs
(node:73044) ExperimentalWarning: The ESM module loader is experimental.
DIY Physics Kits

На момент написания этой статьи я использовал Node.js v12.3.1:

% node --version
v12.3.1

Кроме того, вы можете перенести свой код с помощью такого инструмента, как Babel, который меняет import s на require s.

...