reactjs 如何使用ES6模块导入一个文件,并以字符串形式读取其内容?

ifsvaxew  于 2022-12-26  发布在  React
关注(0)|答案(2)|浏览(183)

在我的标准React应用中,我需要实现以下目标:我导入了一个位于src文件夹中的文件,以便将其内容作为字符串读取。例如,假设我在一个文件中有以下代码:

alert('hey')

然后在其他文件中,我想用伪代码做一些类似的事情:

import * as string from './someFile.js'

console.log(string)

console.log的输出应该是JS代码,以字符串的形式:

alert('hey')

如果我可以将文件放在我的公共文件夹中,我就可以执行http请求并按我的意愿读取它。但问题当然是,该文件是构建过程的一部分(在src文件夹中)
这能做到吗?

brccelvz

brccelvz1#

我可以想到:
1.使用以下代码定义constants.js文件:

export default "alert('vasia')";

1.从某个React文件导入此文件:

import vasia from "./constants";

const App = () => {
  console.log(eval(vasia));
}

这就是你要找吗?
但是,必须警告你:“eval”是邪恶的!

pu3pd22g

pu3pd22g2#

我想做同样的事情,但不幸的是发现这是不可能的纯JS截至2022年。
有一个针对Import Assertions的阶段3 TC39建议,它在Chromium-based浏览器中可用,但只允许导入JSON文件,因此在这种特殊情况下肯定没有帮助。
我相信目前最好的方法是使用Fetch API异步获取文件的内容。

async function getSampleText() {
    const response = await fetch('someFile.js');
    console.log(
        await response.text()
    );
}

相关问题