我正在尝试设置一些环境变量(用于对dev / prod端点进行API调用,取决于dev / prod等的键等),我想知道使用dotenv是否行得通。
我已经安装了dotenv,并且正在使用webpack。
我的webpack条目是main.js
,因此在该文件中require('dotenv').config()
然后,在我的webpack配置中,输入以下内容:
new webpack.EnvironmentPlugin([
'NODE_ENV',
'__DEV_BASE_URL__' //base url for dev api endpoints
])
但是,它仍未定义。如何正确执行此操作?
最简洁的答案是不。浏览器无法访问本地或服务器环境变量,因此dotenv无需查找。相反,您通常在设置模块中在React应用程序中指定普通变量。
可以使Webpack从构建机器中获取环境变量并将其烘烤到您的设置文件中。但是,它实际上是在构建时而不是运行时替换字符串。因此,应用程序的每个内部版本都将值硬编码到其中。然后可以通过process.env
对象访问这些值。
var nodeEnv = process.env.NODE_ENV;
另外,您可以使用DefinePlugin
for
webpack,它使您可以根据构建目标(开发,生产等)显式指定不同的值。请注意,您必须将JSON.stringify
所有值传递给它。
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development')
}),
这对于任何种类的公共细节都很好,但是 绝不能用于任何种类的私钥,密码或API机密
。这是因为任何包含在其中的值都是可公开访问的,并且如果它们包含敏感的详细信息,则可能会被恶意使用。对于这类事情,您需要编写一些服务器端代码并构建一个简单的API,该API可以使用机密信息与第三方API进行身份验证,然后将相关详细信息传递给客户端应用程序。您的服务器端API充当中介,在保护您的秘密的同时仍可获取所需的数据。
当我使用jersey开发一个rest api应用程序时,我遇到了一个问题,我需要为特定的业务逻辑部分实现一个websocketendpoint。 我提出这个问题是因为我认为jersey与javaee-api工件之间存在一些依赖关系冲突。
问题内容: 基本上,我有一个react组件,其功能主体如下:(这是我的理想组件,这意味着它当前不起作用) 问题答案: 不完全一样,但是有解决方法。在React的文档中有一节关于条件渲染,您应该看一下。这是使用内联if-else可以做什么的示例。 您也可以在render函数中处理它,但是要在返回jsx之前。 还值得一提的是ZekeDroid在评论中提到的内容。如果您只是检查条件而又不想呈现不符合要求
问题内容: 我知道可以将AngularJs和Maven包含到一个Spring项目中,但是如何将其包含在Gradle中呢? 查看gradle存储库,我没有找到AngularJs条目。也许可以使用Gradle从Maven存储库中获取它?但是,如何做到这一点。 问题答案: 尽管在下面的讨论中发现,通过gradle下载angular没有意义,但是可以使用以下代码完成:
问题内容: 我正在尝试从Maven内部执行繁琐的任务,而无需安装Node.js或任何东西。这是因为我不想将我的工件由Jenkins打包,也无法在该机器上安装Node.js。 我知道使用npm很容易,并且有一些命令可以使它正常工作,但是我也认为与maven集成应该很容易,问题是我不知道从哪里开始,因为我是npm的新手。 问题答案: 是的,使用frontend-maven-plugin,您可以通过Ma
在React项目中, 我有一个项目A(函数式组件开发), 1、请问是否可以再在A里面创建一个组件B(使用类组件),然后也就是说类组件在函数式组件项目中被调用? 2、如果不能混用,请问是否可以将B组件给什么参数进行打包,然后再项目A进行引入使用? 3、由于B是一个类组件,我在A项目中有一个函数式组件C,想要继承自B,是否可以呢?