未捕获ReferenceError:未定义require?

时间:2020-01-31 09:27:31

标签: javascript node.js npm lodash

我已经下载了node-js,并且正在文件夹内使用npm。我已经下载了 lodash 程序包作为依赖项,它位于节点模块文件夹中。

但是当我尝试使用 require()使用它时,它在控制台中给出了上述错误,并建议通过vs代码使用 ES6模块化 e,require是 common.js

的模块

我有一个package.json文件,并且lodash被列为依赖项。我可以使用节点服务器在命令行中运行lodash,但不能在浏览器中运行

除了 node-js 之外,是否还需要安装其他软件包才能运行require()函数? 我究竟做错了什么? 我在Windows上并使用最新版本的node和npm 让a = require('lodash');

2 个答案:

答案 0 :(得分:2)

如果VSCode建议您使用ES6模块,则您可能已在项目中打开了ES6模块支持,这将覆盖Node对CommonJS模块的默认支持。

使用

import lodash from 'lodash';

代替要求。


重新编辑:

我可以使用节点服务器在命令行中运行lodash,但不能在浏览器中运行

是的。如果您运行旨在在Node.js中的Node.js中工作的程序,那么它将起作用。如果您在浏览器中运行相同的程序,则它将无法运行。仅将Node.js安装在某处并不能将浏览器变成Node.js。

如果要在浏览器中使用ES6模块,则:

  • 它必须与浏览器兼容(可能是破折号
  • 您需要使用import lodash from "./url/to/lodash.js";,因为浏览器不支持解析npm路径。

如果该模块不是为了在浏览器中运行而设计的,那么您也许可以使用Webpack之类的工具将其捆绑在一起,以一种可行的方式进行(但该模块中不起作用取决于所提供的API由Node.js提供,例如fs

答案 1 :(得分:-1)

您可以使用express框架在NODE js上工作

let express = require('express');