我试图弄清楚如何根据环境选择在玉器文件中显示文本。我似乎无法弄清楚如何访问我的jade文件中的NODE_ENV
变量。
在我正在执行的index.jade
文件中:
if process.env.NODE_ENV === 'development'
h1 I am in development mode
else
h1 I am not in development mode
问题是process.env.NODE_env
是undefined
。
当我尝试在h1 #{process.env}
语句之外执行if
时,Jade会将[Object Object]
输出到页面上。
当我尝试在h1 #{process.env.NODE_ENV}
语句之外执行:if
时,Jade不会在页面上输出任何内容。
我不是在飞行中渲染我的Jade文件,而是将它们全部构建为"静态"我启动服务器时的文件。
答案 0 :(得分:9)
您要在jade模板中访问的任何内容都必须位于从服务器发送的本地对象中。对于像流程环境这样的东西,您可以在启动应用时立即执行此操作:
const express = require('express');
var app = express();
app.locals.env = process.env; // though you might prefer to clone this instead of setting them equal
然后在你的玉石模板中你可以做到
#{env.NODE_ENV}
<强>更新强>
添加直接使用,而不是在快速服务器中。
const pug = require('pug');
// Compile the source code
const compiledFunction = pug.compileFile('template.pug');
// Render a set of data
console.log(compiledFunction(process.env));
这将记录它,但当然您可以使用fs
实用程序轻松地将其写入HTML文件。