【发布时间】:2016-02-29 20:47:08
【问题描述】:
我来自 RequireJS 世界,想开始使用 browserify。我正在使用 ExpressJS 和 Node.js 构建我的应用程序。我现在需要从 Jade 模板视图文件中调用 javascript。为了测试,我只想使用一个简单的日志模块,名为[loglevel]1,我可以从jade 模板视图文件中调用它。我通过 npm 安装了 loglevel,模块源现在位于我的应用程序的 node_modules 文件夹中。
新 Express 应用标配的 app.js 内部(删节):
var express = require('express');
var path = require('path');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var http = require('http');
var browserify = require('browserify-middleware');
var app = express();
// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.get('/javascripts/bundle.js', browserify(['loglevel']));
然后在我的 Jade 模板中我有这个(删节):
doctype html
//if IE 8
html.no-js.lt-ie9(lang='en')
// [if gt IE 8] <!
|
html.no-js(lang='en')
// <![endif]
head
meta(charset='utf-8')
meta(name='viewport', content='width=device-width,initial-scale=1.0')
title App Title
link(rel='stylesheet', href='stylesheets/app.css')
script(src="javascripts/bundle.js")
script.
log.info('just a test')
body#landing
当我加载显示此 Jade 视图的路由时,我的控制台会显示:log is not defined 即使应该由 loglevel 模块定义它。当我检查控制台中的源选项卡时,我确实看到浏览器确实加载了loglevel。由于脚本正在加载,我不应该访问由loglevel 模块定义的log 对象吗?
【问题讨论】:
标签: node.js express browserify