开发者社区> 问答> 正文

eval()函数中的节点process.env变量给出了不同的结果

我在使用服务器端渲染的节点中运行了一个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:

NODE_ENV: ${NODE_ENV}

kind: Service
apiVersion: v1
metadata:
name: ${SERVICE_NAME}
spec:
selector:

app: ${SERVICE_NAME}

ports:

  • name: http
    protocol: TCP
    port: 80
    targetPort: 3000

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}

展开
收起
k8s小能手 2018-12-14 15:06:08 1847 0
1 条回答
写回答
取消 提交回答
  • 整合最优质的专家资源和技术资料,问答解疑

    我们使用webpack进行捆绑,并且在webpack输出的服务器代码中,我看到它已经解析process.env.NODE_ENV为静态值,但它没有做同样的事情eval(process.env.NODE_ENV)。

    2019-07-17 23:20:59
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载