我正在尝试使用commonJS模块格式,使用create-react-app(CRA)。 CRA的文档说:
..创建React App可以同时使用CommonJS和ES模块。对于Node.js 兼容性,建议主入口点是CommonJS ...
我发现当我导入一个提供ES6模块格式的模块时(通过"模块"" package.json"中的属性),CRA使用它作为入口点对于模块。
因此 - 即使我的项目完全使用CJS,它也会尝试导入ES6模块 - 并失败。
所以 - 这是一个错误吗?或者,我是否误解了create-react-app的预期行为?
再生
我在这里转载了这个:https://github.com/mjashanks/cra-test。该项目是一个基本的CRA骨架,修改为使用CJS。
此外,我添加了一个"测试模块",其package.json包含一个" main" (CJS)和"模块" (ES6)切入点。
如果我们运行npm start
,则项目无法构建,因为文件" test-module / index.esm.js"正在使用。 (我们可以编辑此文件以使用CJS格式来构建项目并使其更加清晰)。
"测试模块/ index.cjs.js"从未使用过。
谢谢:)