gpt4 book ai didi

node.js - Pug 和 Parcel 不提供动态本地人

转载 作者:行者123 更新时间:2023-12-03 12:13:56 25 4
gpt4 key购买 nike

我有一个使用 Pug 模板和 Parcel 的 Express 应用程序用于我的打包器。根据包裹docs , 我可以有一个配置文件来存储我的本地人 pug.config.js ,但是,我需要在运行时动态地将局部变量添加到我的模板中。是否有可能做到这一点?

这是我的文件:

index.pug

...
h1 #{isAuthenticated}
h1 #{env}
...

pug.config.js
module.exports = {
locals: {
env: process.env.NODE_ENV
}
}

app.js
const Bundler = require('parcel-bundler')
const bundler = new Bundler(path.resolve(__dirname, 'views/index.pug'))

app
.set('views', path.join(__dirname, 'views'))
.set('view engine', 'pug')
.use(function(req, res, next) {
res.locals.isAuthenticated = 'true'
next()
})
.use(bundler.middleware())

在这里,我试图设置一个本地变量 isAuthenticated'true' ,但是在渲染 index.pug 时变量为空,同时, env来自我的 pug.config.js文件存在。

现在,如果我尝试使用 res.render('index', {isAuthenticated: 'true'}) 在我的 Controller 函数中呈现页面变量 isAuthenticated现在存在,但是 env是空的。

我想知道我是否在这里遗漏了什么,或者这是否按预期工作?

最佳答案

我已经简要地试用了包裹。开箱即用的体验很棒,但说到高级配置,就很糟糕了。这有点像设计,包裹只是反对配置的想法。一切都基于约定。

所以我检查了 source code .结果是parcel只需要来自'.pugrc', '.pugrc.js', 'pug.config.js'的pug配置.

如果您选择坚持使用包裹方式,您可以尝试写下您的 locals值返回到磁盘上的这些文件之一。需要测试一下,可能有一些异步问题需要调试。

我个人更喜欢以下方法。你用pug作为真正的模板引擎,直接用pug.compile/render用于生成 html 的 API。然后您将这些 html 进一步传送到包裹,它仍然会完成工作的“捆绑”部分。

关于node.js - Pug 和 Parcel 不提供动态本地人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55763602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com