sys*_*bot 9 javascript node.js ecmascript-6
我正在编写一个 JavaScript es6 模块,其中包含“Mocha”测试用例,该测试用例测试包含我的应用程序的实际功能的 JavaScript es6 模块。
我正在尝试通过 es6 import 导入 nodejs 模块“module”,如下所示:
import { createRequire } from 'module';
Run Code Online (Sandbox Code Playgroud)
接下来,我通过调用“createRequire”创建一个“require”函数:
const require = createRequire(import.meta.url);
Run Code Online (Sandbox Code Playgroud)
之后我尝试使用“require”导入nodejs模块:
const chai = require('chai');
const assert = chai.assert;
Run Code Online (Sandbox Code Playgroud)
我将所有内容放在一个 HTML 文件中,启动一个 Web 服务器并在浏览器中打开该 HTML 文件。
不幸的是,第一行在 Firefox 浏览器的控制台中给了我一个错误:
TypeError: Error resolving module specifier: module
Chromium 浏览器给我以下错误消息:
Uncaught TypeError: Failed to resolve module specifier "module". Relative references must start with either "/", "./", or "../".
实际上,提供相对参考也不起作用:
我安装了 Nodejs 模块“module”( npm install module
) 并使用了该模块的相对路径。不幸的是,浏览器不知道如何加载模块,因为没有给出具体的入口点。
我只是尝试遵循手册,但没有运气:
https://nodejs.org/api/modules.html#modules_module_createrequire_filename
你怎么认为?我应该如何更改我的代码才能使其正常工作?
非常感谢您的宝贵建议。
小智 4
我希望您已经使用“npm install module”命令安装了该模块,尝试使用 commonJS 模式并按以下方式包含该模块
const { createRequire } = require('module');
Run Code Online (Sandbox Code Playgroud)