Uncaught ReferenceError: требование не определено? - PullRequest
0 голосов
/ 31 января 2020

Я скачал node-js и использую npm внутри папки. Я загрузил пакет loda sh в качестве зависимости, и он находится в папке module modules .

, но когда я пытаюсь использовать его, используя require () выдает вышеупомянутую ошибку в консоли и предлагает использовать модуль ES6 e по отношению к коду и require - это модуль common. js

У меня есть пакет. json файл и loda sh указаны как зависимости. Я могу запустить loda sh в командной строке, используя сервер узлов, но не в браузере

Нужен ли какой-либо другой пакет, установленный для того, чтобы функция require () могла работать, кроме * 1027? *? Что я делаю неправильно? Я на windows и использую последнюю версию узла и npm let a = require ('loda sh');

Ответы [ 2 ]

1 голос
/ 31 января 2020

Если VSCode предлагает использовать модули ES6, возможно, вы включили поддержку модулей ES6 в своем проекте, которая переопределяет стандартную поддержку Node для общих JS модулей.

Использование

import lodash from 'lodash';

вместо require.


Re edit:

Я могу запустить loda sh в командной строке, используя сервер узлов, но не в браузере

Ну да. Если вы запускаете программу, предназначенную для работы в Node.js в Node.js, то она работает. Если вы запустите ту же программу в браузере, она не будет работать. Если просто установить Node.js где-нибудь, это не превращает браузер в Node.js.

Если вы хотите использовать модуль ES6 в браузере, тогда:

  • Он должен быть совместимым с браузерами (loda sh может быть)
  • Вам необходимо использовать import lodash from "./url/to/lodash.js";, потому что браузеры не поддерживают разрешение npm путей.

Если модуль не предназначен для работы в браузерах, возможно, вы сможете использовать такой инструмент, как Webpack, для его объединения таким образом, чтобы он работал (но это не сработает в модуле, зависит от API, предоставляемых Node.js, как fs).

0 голосов
/ 31 января 2020

Вы можете использовать express framework для работы на NODE js

let express = require ('express');

...