我想要做的是将一个对象从我的typescript文件导入到一个脚本标记中
这就是我正在尝试做的事情
<div id="app-root"></div>
<script>
import {config} from '../config.ts';
let script = document.createElement('script');
script.src = `https://maps.googleapis.com/maps/api/js?key=${config.GOOGLE_MAPS_KEY}`;
document.getElementsByTagName('script')[0].parentNode.appendChild(script);
</script>
我不确定这是否可能,但我的react应用程序正在# app -root中呈现,我正在尝试处理我的配置中的API密钥。当我运行这段代码时,什么也没有发生,但是如果我添加了静态值,它似乎可以工作。
我期望发生的是,通过将变量传递给脚本src,脚本将成功执行。
发布于 2021-01-09 02:12:52
不,在script标签中读取ts文件是不可能的(至少在没有把它编译成js的情况下是这样的)。
但是,您可以做的是使用环境变量,并让react-scripts将其编译到您的模板中,就像每次启动开发服务器或运行构建时它已经做的那样。
从这里开始:
https://create-react-app.dev/docs/adding-custom-environment-variables
首先,在项目的根目录下创建一个名为.env
的环境文件
接下来,让我们将环境变量添加到此文件中:
REACT_APP_GOOGLE_MAPS_KEY=<your key>
最后,修改index.html以引用我们的环境变量:
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=%REACT_APP_GOOGLE_MAPS_KEY%"></script>
作为最后的想法,你可以在需要的地方用react的方式包含你的google地图依赖,而不是麻烦:通过使用react插件。看看这个。它将为您加载/卸载api,您可以在加载api时从config传入您的密钥:
发布于 2021-01-09 02:15:38
需要将typescript文件编译/转换为JS ( .js文件),以便在浏览器中使用。
您可以在以下位置在线编译TS文件:https://www.typescriptlang.org/play并将输出复制到.js中
或
通过命令行安装它(假设您在Windows上)
npm install typescript // add -g if you want to install it globally
cd intoYourFolder // change directory to the folder where you have the .ts file
tsc *.ts // this will compile all typescript files in the directory
tsc yourFile.ts // this will compile only a specific file
https://stackoverflow.com/questions/65633621
复制相似问题