如何在 JS 中将 import 语句转换为 require() 语句

How to Convert, in JS, an import statement to a require() statement

我在JavaScript中有一个声明:

import app, { set } from '../app';

如何在表单中编写等效语句,例如我不会收到 'Cannot use import statement outside a module'.

这样的错误

我可以使用以下格式转换类似的不太复杂的语句: var Foo = require(foo);

但是不明白这个怎么转换。

并非每个 import 都可以转换为 require。在纯 Node.js 中,这仅在所需模块是 CommonJS 模块时才有可能,但使用 Webpack 或 Babel 等工具时情况有所不同。

我想你正在使用这些工具之一,否则你将无法在没有文件扩展名的情况下导入 ../app:你需要从 ../app.js../app/index.js 显式,或使用导出映射,但这是另一回事。

那么如果

import app, { set } from '../app';

是 ES 模块中的有效导入,无论使用何种加载器,等效的 CommonJS 语法都是

const app = require('../app');
const { set } = app;