我来自RequireJS世界,并希望开始使用browserify。我正在使用ExpressJS和Node构建我的应用程序。我需要在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
。由于脚本正在加载,我不应该访问由log
模块定义的loglevel
对象吗?
答案 0 :(得分:0)
从我在loglevel distribution package看到的内容,它可以导出到CommonJS或AMD,也可以导出为全局。
所以你应该首先require()
:
script.
require("loglevel").info("just a test");