使用 jest 在节点的 public 文件夹中测试 javascript
Test javascript in node's public folder using jest
我在节点 js public 目录中的 example.js 文件中有一个简单的 javascript 函数。
我正在使用 jest 进行单元测试。
问题是,如果我在 public 文件夹的 example.js javascript 文件中写入以下内容:
module.exports.myFunction = myFunction;
Jest 测试文件能够导入它,使用 require() 并执行测试,但是当我 运行 Web 应用程序时,浏览器在我服务包含此 javascript:
未捕获的引用错误:模块未定义
node应用程序public目录下javascript文件的正确测试方法是什么?
在项目中使用 export and/or import 被报告无法识别并导致错误。
这是怎么做到的?
如评论中所述,require(...)
和 module.exports
与 Common JS Modules 相关,NodeJS 运行时原生支持,但浏览器不支持。所以基本上你需要添加额外的构建配置才能让你的模块在两个运行时都工作。
如果您想在 CommonJs 和浏览器友好包中输出 - 您可以在 ES Modules 中编写所有代码并使用 webpack 等构建工具提供不同格式的输出。
此外,starting from Node 13.2.0 - 它原生支持 ES 模块。所以无论如何我都会坚持使用 ES 模块进行持续开发。
请同时检查 this short article 主要 JS 模块格式差异。
我在节点 js public 目录中的 example.js 文件中有一个简单的 javascript 函数。
我正在使用 jest 进行单元测试。
问题是,如果我在 public 文件夹的 example.js javascript 文件中写入以下内容:
module.exports.myFunction = myFunction;
Jest 测试文件能够导入它,使用 require() 并执行测试,但是当我 运行 Web 应用程序时,浏览器在我服务包含此 javascript:
未捕获的引用错误:模块未定义
node应用程序public目录下javascript文件的正确测试方法是什么?
在项目中使用 export and/or import 被报告无法识别并导致错误。
这是怎么做到的?
如评论中所述,require(...)
和 module.exports
与 Common JS Modules 相关,NodeJS 运行时原生支持,但浏览器不支持。所以基本上你需要添加额外的构建配置才能让你的模块在两个运行时都工作。
如果您想在 CommonJs 和浏览器友好包中输出 - 您可以在 ES Modules 中编写所有代码并使用 webpack 等构建工具提供不同格式的输出。
此外,starting from Node 13.2.0 - 它原生支持 ES 模块。所以无论如何我都会坚持使用 ES 模块进行持续开发。
请同时检查 this short article 主要 JS 模块格式差异。