javascript - 带有 Webpack 的 Typescript 中的环境变量

标签 javascript reactjs typescript webpack

我无法使用 Webpack 的 DefinePlugin 在 Typescript 中声明全局变量。我希望就我做错了什么得到一些意见。

我在我的 .bash_profile 中创建了一个环境变量:

export API_KEY_GOOGLE_MAPS=xxxxxxxxxxxxxxxx

在我的 webpack.config.js 中,我有以下几行:

...
plugins: [
  new webpack.DefinePlugin({
    API_KEY_GOOGLE_MAPS: JSON.stringify(process.env.API_KEY_GOOGLE_MAPS),
  }),
],
...

index.tsx(我使用的是 React)中,我执行以下操作:

declare var API_KEY_GOOGLE_MAPS: string;

console.log(API_KEY_GOOGLE_MAPS)

这会在包含 console.log 的行中产生以下错误:

ReferenceError: API_KEY_GOOGLE_MAPS is not defined

有人有线索吗?

最佳答案

其他答案需要 create-react-app 所以我会提供我的答案。

首先,将插件添加到您的 Webpack 配置中:

const webpack = require("webpack");

module.exports = {
  // ... 
  plugins: [
    new webpack.DefinePlugin({
      MY_ENV_VAR: JSON.stringify(true),
    }),
  ],
};

接下来,在 TypeScript 中声明变量:

declare var MY_ENV_VAR : string | undefined;

最后,您可以在代码中访问变量:

console.log(MY_ENV_VAR);

关于javascript - 带有 Webpack 的 Typescript 中的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47821011/

相关文章:

javascript - 如何在 Next.js 中进行依赖的 fetch API 调用

javascript - 接口(interface)将键值限制为 const Typescript 的精确值

javascript - 嵌套在 ngIf 中时,异步管道订阅无法正常工作

javascript - 第二次单击按钮时删除附加的样式表

javascript - 带有渐变背景边框并使用js更改颜色的圆圈

javascript - 选中复选框时形成对象数组 angularjs

javascript - React Router v4 正在为 React.js SPA 中的子组件渲染空白页面

javascript - 如何使函数在完成特定任务之前不返回?

reactjs - React 忽略 label 元素的 'for' 属性

javascript - 测试 React 中的点击事件是否会更新 HTML