我在使用服务器端渲染的节点中运行了一个react应用程序。test在我的测试环境中,通过kubernetes 设置以下环境变量:process.env.NODE_ENV。
当我运行以下两个命令时,它们会给出不同的结果。我希望价值始终如此test。
log.debug(process.env.NODE_ENV) // logs development
log.debug(eval('process.env.NODE_ENV')) // logs test
不知何故,看起来变量首先被解释为development(如果它是未定义的,我的代码中会发生这种情况),但它以某种方式test由eval()函数正确解释。
是什么导致节点在两个表达式之间以不同方式解释值?
编辑:添加了kubernetes yaml配置。
在发布过程中,$!}变量将由Azure DevOps替换。
apiVersion: v1
kind: ConfigMap
metadata:
name: config
namespace: ${KUBERNETES_NAMESPACE}
data:
kind: Service
apiVersion: v1
metadata:
name: ${SERVICE_NAME}
spec:
selector:
app: ${SERVICE_NAME}
ports:
loadBalancerIP: ${IP_NUMBER}
type: LoadBalancer
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: ${SERVICE_NAME}
labels:
app: ${SERVICE_NAME}
spec:
replicas: 2
selector:
matchLabels:
app: ${SERVICE_NAME}
template:
metadata:
labels:
app: ${SERVICE_NAME}
spec:
containers:
- name: ${SERVICE_NAME}
image: {IMAGE_PATH}/${IMAGE_REPO}:${BUILD_NUMBER}
ports:
- name: http
containerPort: 3000
protocol: TCP
resources:
limits:
cpu: 100m
memory: 1024Mi
requests:
cpu: 100m
memory: 1024Mi
envFrom:
- configMapRef:
name: config
imagePullSecrets:
- name: ${IMAGEPULLSECRETNAME}
我们使用webpack进行捆绑,并且在webpack输出的服务器代码中,我看到它已经解析process.env.NODE_ENV为静态值,但它没有做同样的事情eval(process.env.NODE_ENV)。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。