Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.07.2022, 09:01
Аспирант
Отправить личное сообщение для noveek Посмотреть профиль Найти все сообщения от noveek
 
Регистрация: 09.06.2017
Сообщений: 40

Как импортировать файлы js
Здравствуйте, как импортировать файлы и использовать функции из них:

Содержимое Файла который лежит в папке с программой:
// module1.js

// При добавлении ключевого слова export
// выражение становится экспортированным.
export function sum(a, b) {
  return a + b
}

// Экспортировать можно не только функции,
// но и константы:
export const SOME_SETTINGS_FLAG = false
export const user = {}
export const books = ["Война и мир", "Мастер и Маргарита"]


import ("./module1.js"); // файл лежит в папке с программой
books; // не работает (
Ответить с цитированием
  #2 (permalink)  
Старый 19.07.2022, 10:33
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от noveek
как импортировать файлы и использовать функции из них
Это все описано в букваре...
https://habr.com/ru/company/domclick/blog/532084/
Ответить с цитированием
  #3 (permalink)  
Старый 19.07.2022, 11:26
Аспирант
Отправить личное сообщение для noveek Посмотреть профиль Найти все сообщения от noveek
 
Регистрация: 09.06.2017
Сообщений: 40

Сообщение от ksa Посмотреть сообщение
Это все описано в букваре...
https://habr.com/ru/company/domclick/blog/532084/
У меня просто возникает ошибка и я не понимаю почему:

Error $30002: JavaScript failed to compile.
Name: SyntaxError
Message: 'import' or 'export' can only be used in module code.
Source:  import * as customName from ("./module1.js");
Line: 0
Column: 1
Ответить с цитированием
  #4 (permalink)  
Старый 19.07.2022, 11:37
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от noveek
import ("./module1.js"); // файл лежит в папке с программой
books; // не работает (
Для работы с books импорт должен выглядеть так
import {books} from "./module1.js";
Ответить с цитированием
  #5 (permalink)  
Старый 19.07.2022, 11:39
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от noveek
я не понимаю почему
Тебе явно пишут
Сообщение от noveek
SyntaxError
Т.е., грубо говоря, ты написал какую-то белиберду.
Ответить с цитированием
  #6 (permalink)  
Старый 19.07.2022, 11:43
Аспирант
Отправить личное сообщение для noveek Посмотреть профиль Найти все сообщения от noveek
 
Регистрация: 09.06.2017
Сообщений: 40

Сообщение от ksa Посмотреть сообщение
Тебе явно пишут

Т.е., грубо говоря, ты написал какую-то белиберду.
Тоже самое:
import {books} from ("./module1.js");

Error $30002: JavaScript failed to compile.
Name: SyntaxError
Message: 'import' or 'export' can only be used in module code.
Source: import {books} from ("./module1.js");
Line: 0
Column: 0
Ответить с цитированием
  #7 (permalink)  
Старый 19.07.2022, 13:03
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,699

Мне кажется, в node модули должны иметь расширение .mjs, а не .js
Node не понимает, что module1.js - это модуль. И дает синтаксическую ошибку, что операторы export и import допустимы только в модулях.
Ответить с цитированием
  #8 (permalink)  
Старый 19.07.2022, 16:02
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Там смотря какой режим "включен"... Если строгий - импорт. А по умолчанию работает рекваер...

const {books} = require("./module1.js")

Но и модуль тогда "оформляется" иначе
// 
function test() {
	//
}

module.exports = {test}
Ответить с цитированием
  #9 (permalink)  
Старый 19.07.2022, 16:42
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,699

При чем тут require?
Он же import использует.
Ответить с цитированием
  #10 (permalink)  
Старый 19.07.2022, 17:08
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от voraa
Он же import использует.
Но пока неудачно...

Вот статейка про то как перейти с require на import в Ноде.
https://habr.com/ru/company/ruvds/blog/556744/
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Парсинг массива и обработка данных в JS коде. Как пройти ошибку? mik888em Events/DOM/Window 1 18.04.2022 00:25
Как совместить данные php с js? deman1 Javascript под браузер 4 29.08.2021 20:39
Как перебрать массив в JS? AnteFil Элементы интерфейса 10 03.08.2020 21:50
Как объединить несколько js файлов в один? Fankrai Элементы интерфейса 0 03.06.2020 09:49
Как сделать выполнение одного JS после выполнения другого vita1ii Events/DOM/Window 2 11.01.2013 18:52