gpt4 book ai didi

javascript - 如何从公开 module.exports 的 browserify 加载客户端脚本(通过 jadeify)

转载 作者:行者123 更新时间:2023-11-29 22:04:45 25 4
gpt4 key购买 nike

我有一个使用 browserify 从 jade 模板创建的 javascript 文件+ browserify-middleware + jadeify

这一切都在节点的服务器端,这是让它创建生成的 javascript 文件所需的唯一事情:

app.use('/templates', require('browserify-middleware')('./public-includes'),
{
grep: /\.jade$/,
transform: ['jadeify']
}));

然后在网络浏览器中,我从 /templates/template.jade 得到了一些 javascript 代码,(编辑: 我发布了它 here )我可以看到它在 module.exports 上设置各种功能(就像节点一样)。但是我如何从客户端使用它呢?我尝试像这样使用 require.js var template = require('/templates/template.jade', function(template){});,返回未定义。

我是否也应该在客户端使用 browserify?我见过的所有示例都在谈论包和东西,但我不知道它是否适用,我在一个目录上运行它并且没有在任何地方提供包名称。

最佳答案

理想情况下,到处使用 browserify。为此,只需要一个 client.js 文件即可:

var template = require('./templates/template.jade');
// rest of code here

然后在服务器上,做:

app.get('/client.js', require('browserify-middleware')('./client.js',
{
transform: ['jadeify']
}));

在您的 html 中,您只需执行以下操作:

<script src="/client.js"></script>

另一种选择,如果你想使用像 requirejs 这样的东西或者只是一个独立的全局你可以这样做:

app.get('/templates', require('browserify-middleware')('./public-includes'),
{
grep: /\.jade$/,
transform: ['jadeify'],
standalone: 'template'
}));

然后您应该会发现在客户端上声明了一个全局 template 变量,或者它应该与 requirejs 一起工作,因此您可以执行以下操作:

require('/templates/template.jade', function (template) {
//use template here
});

虽然我对 requirejs 不是很有经验,所以你的里程数可能会因该方法而异。我真的建议对所有内容都使用 browserify。

关于javascript - 如何从公开 module.exports 的 browserify 加载客户端脚本(通过 jadeify),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21634990/

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