使用jest在节点的公共文件夹中测试javascript



我在example.js文件中放置了一个简单的javascript函数在node .js公共目录中。
我使用jest进行单元测试。
问题是,如果我在公共文件夹中的example.js javascript文件中编写以下内容:
module.exports。myFunction = myFunction;Jest测试文件能够导入它,使用require()并执行测试,但是当我运行web应用程序时,当我为包含以下javascript的页面提供服务时,浏览器会抱怨:Uncaught ReferenceError: module is not defined

在节点应用程序的公共目录中测试javascript文件的正确方法是什么?
在项目中使用export和/或import会被报告为无法识别并导致错误。

这是怎么做的?

正如在注释中提到的require(...)module.exports涉及到公共JS模块,这些模块由NodeJS运行时本地支持,但不受浏览器支持。所以基本上你需要添加额外的构建配置,让你的模块在两个运行时都工作。

如果你想在CommonJs和浏览器友好的bundle中输出,你可以在ES模块中编写所有代码,并使用构建工具(如webpack)来提供不同格式的输出。

同样,从Node 13.2.0开始,它支持ES模块。因此,无论如何,我都会坚持使用ES模块进行持续的开发。

请查看这篇关于主要JS模块格式差异的短文。

相关内容

最新更新