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

标签 javascript node.js coffeescript requirejs

上下文

我克隆了一个基本的 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/

相关文章:

javascript - 如何动态添加/删除表单中的 2 个或更多字段

javascript - IIFE 模式命名不正确?

node.js - node api 上的 mocha chai 测试总是收到 404 状态

javascript - EOL 未出现在 node.js 应用程序中

javascript - 在 node.js 发生变化时编译并运行一个 coffeescript 文件

javascript - 异步/等待与同步功能改变 react 状态

javascript - 错误: ORA-01036: illegal variable name/number - NodeJS

Node.js Express.js Heroku Toolbelt >Foreman 启动 - 错误 : write EINVAL

javascript - "Can' t wait without a Fiber”查询数据库时出错?

javascript - 无法读取未定义的属性 'prototype'; CoffeeScript 与 Require.js 的继承