Не работает import в javascript
Я установил пакет через npm как обычно (npm install jquery например). Попытался импортировать пакет:
script.js
import jquery from './jquery';
(импорт показан примерный, я мог забыть как правильно импортировать именно jquery)
Так вот дело не в самом пакете, а в ошибке: Uncaught SyntaxError: Cannot use import statement outside a module. (дочитайте до конца прежде чем скидывать тот вопрос на stack про type="module")
Я прописал в теге script - type="module"
Консоль браузера затихла, ошибок не было, но вот сама библиотека не работала, вооообще
Я также пытался ставить "type": "module" в package.json
Сборщиков не использовал, подключал файл script.js через тег script src="src/js/script.js">
Но все бестолку, консоль браузера писала туже самую ошибку Однако у других все работает без каких то там type module в теге. Напишите пожалуйста в чем может быть проблема, без всяких альтернатив. Заранее спасибо за ответ
Ответы (2 шт):
Расширение тоже надо указывать, если ты рассчитываешь, что браузер подтянет файл по сети.
Начну с того, что я не увидел слово сервер.
Без какого либо СЕРВЕРА export import работать не будут.
Нельзя просто с проводника открыть файл index.html и мечтать, что будет работать, да хоть миллион раз пропиши <script type="module" src="./js/index.js"></script>
Атрибут
type="module"обязателен...
Лично я запускаю при помощи плагина Live Server для редактора VS-Code
Далее про волшебное слово NPM...
Если просто установить например
JQчерезnpm, то работать будет, но при условии, если путь к файлу будет абсолютный
import '../node_modules/jquery/dist/jquery.js';
Далее про
export import
Для того чтобы что-то импортировать, это надо экспортировать...
Экспортировать и импортировать можно разными вариантами...
Например у нас есть <script type="module" src="./js/index.js"></script>
В нем и импортируем..
Есть файл test.js из него экспортируем...
export const test_1 = ['Zina', 'Leha', 'Kolay'];
export const test_2 = ['15', '25', '45'];
export const test_3 = ['Good', 'Bad', 'OK'];
export const test_4 = ['Rus', 'Geo', 'Eng'];
а в фале index.js
import {test_1, test_2, test_3, test_4} from './test.js';
Или можем экспортировать весь файл целиком export default '*';
function testExport(n) {
return n + n;
}
console.log("testExport(4)", testExport(4));
function testExport_1(n) {
return n + n;
}
console.log("testExport_1(5)", testExport_1(5));
export default '*';
А импортируем просто файл
import './test-2.js';
Или экспортировать отдельные переменные или функции
function testExport(n) {
return n + n;
}
const test_4 = ['Rus', 'Geo', 'Eng'];
export {test_4, testExport};
И импорт
import {test_4, testExport} from './test-2.js';
P.S. И да Qwertiy прав, расширение файла обязательно...