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

上下文

我克隆了一个基本的node-browserify boilerplate project并得到了它.我正在使用咖啡脚本.现在,我正在尝试将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 – 无法使用’in’运算符来搜索’_id’


下一篇:解决执行grunt命令报错【Cannot find module 'coffeescript/register'】