Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Как импортировать файлы js (https://javascript.ru/forum/node-js-io-js/84244-kak-importirovat-fajjly-js.html)

noveek 19.07.2022 09:01

Как импортировать файлы 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; // не работает (

ksa 19.07.2022 10:33

Цитата:

Сообщение от noveek
как импортировать файлы и использовать функции из них

Это все описано в букваре...
https://habr.com/ru/company/domclick/blog/532084/

noveek 19.07.2022 11:26

Цитата:

Сообщение от ksa (Сообщение 546726)
Это все описано в букваре...
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

ksa 19.07.2022 11:37

Цитата:

Сообщение от noveek
import ("./module1.js"); // файл лежит в папке с программой
books; // не работает (

Для работы с books импорт должен выглядеть так
import {books} from "./module1.js";

ksa 19.07.2022 11:39

Цитата:

Сообщение от noveek
я не понимаю почему

Тебе явно пишут
Цитата:

Сообщение от noveek
SyntaxError

Т.е., грубо говоря, ты написал какую-то белиберду.

noveek 19.07.2022 11:43

Цитата:

Сообщение от ksa (Сообщение 546730)
Тебе явно пишут

Т.е., грубо говоря, ты написал какую-то белиберду.

Тоже самое:
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

voraa 19.07.2022 13:03

Мне кажется, в node модули должны иметь расширение .mjs, а не .js
Node не понимает, что module1.js - это модуль. И дает синтаксическую ошибку, что операторы export и import допустимы только в модулях.

ksa 19.07.2022 16:02

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

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

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

module.exports = {test}

voraa 19.07.2022 16:42

При чем тут require?
Он же import использует.

ksa 19.07.2022 17:08

Цитата:

Сообщение от voraa
Он же import использует.

Но пока неудачно... :)

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


Часовой пояс GMT +3, время: 03:40.