中的 CommonJS 模块

CommonJS modules in

在我的 Angular 工作区中使用 Nx,发现了一些问题,这引发了我的问题。在库的所有 tsconfig.spec.json 文件中使用 CommonJS 模块的目的是什么?检查 Nx examples 所有库都没有,只有应用程序包含 "modules: "commonjs"。如果就我而言,我纯粹在前端使用模块,是否仍然需要它?我们不能依赖已经在 Angular/TypeScript 个项目中的 ES2015 (ES6) 来开发吗?毕竟目标显然是 ES5,就像这样 "target": "es5".

特别是,如果 CommonJS 模块仅针对 tsconfig.spec.json 文件,即用于单元测试(在我的例子中是 Jest)。从我的 tsconfig.spec.json 中删除 "modules: "commonjs" 仍然使我的所有单元测试都通过,构建的捆绑包工作正常,同时在服务我的应用程序期间检查时没有任何单个 error/warning.

删除"modules: "commonjs",然后添加一个新的库后发现这真的很有用。没有这个 Jest 就无法编译,所以 Jest 需要它。也可以检查清理 Jest 的缓存 (npx jest --clearCache),然后尝试 运行 它,它不会编译。