gpt4 book ai didi

javascript - 将 jadeify 添加到 node-express-browserify 项目

转载 作者:搜寻专家 更新时间:2023-10-31 23:06:37 25 4
gpt4 key购买 nike

上下文

我克隆了一个基本的 node-browserify boilerplate project把它拿起来。我正在使用 CoffeeScript 。现在,我正在尝试添加 jadeify方程如下:

bundle = browserify
entry: __dirname + "/app/init.coffee"
debug: true
mount: "/app.js"
bundle.use jadeify __dirname + '/views'
app.use bundle

这是在我尝试在任何地方使用 jadeify 之前。

问题

一切正常,直到我添加 bundle.use(jadeify(__dirname + '/views')) 作为 browserify 的中间件。然后我在浏览器的控制台中收到以下错误消息:

Uncaught ReferenceError: __require is not defined

根据浏览器的控制台,这条消息的来源是/app.js

问题

为什么这个脚本在我尝试为 browserify 添加 jadeify 中间件时立即失败并报错?

动机

我认为在客户端重用服务器端 jade 模板会更方便,所以我放弃了下划线模板,转而使用 jade。在做研究时,我遇到了 this solution to a related question这表明使用 jadeify。这似乎可行,但似乎有些地方失败了。

最佳答案

可以使用browjadify绕过jadeify

Usage:
browjadify --entry=app.coffee >bundle.js

来源:browjadify

#!/usr/bin/env node

var jade = require('jade')
var browserify = require('browserify')
var fs = require('fs');
var argv = require("optimist").argv;

var b = browserify()

b.register('.jade', function(body) {
var options = {"client": true, "compileDebug": false};
body = "module.exports = " + jade.compile(body, options).toString() +";";
return body;
});

var jaderuntime = require('fs').readFileSync(__dirname+"/node_modules/jade/runtime.js", 'utf8');
b.prepend(jaderuntime); // Brings in var jade that jade.compile needs

b.addEntry(argv.entry); // gets browserify to do its thing

console.log(b.bundle()); // the bundled output

关于javascript - 将 jadeify 添加到 node-express-browserify 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9418249/

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