节点js express.compiler错误

时间:2012-08-21 13:07:26

标签: javascript node.js less express

我目前正在开发一个express.js Webapp,我正在使用MS Webmatrix附带的样板应用程序。我可以在我的计算机上运行应用程序,但是当我推送到nodejitsu或使用另一台我从git获取应用程序的计算机时,我收到错误,阻止服务器启动。

app.use(express.compiler({ src: __dirname + '/public', enable: ['less'] })
                ^
TypeError: Object function createApplication() {
var app = connect();
utils.merge(app, proto);
app.request = { __proto__: req };
app.response = { __proto__: res };
app.init();
return app;
} has no method 'compiler'
at Function.<anonymous> (C:\Users\hoopdog2\Desktop\afterthoughts_nodejs\serv
er.js:197:21)
at Function.app.configure (C:\Users\hoopdog2\Desktop\afterthoughts_nodejs\no
de_modules\express\lib\application.js:399:61)
at Object.<anonymous> (C:\Users\hoopdog2\Desktop\afterthoughts_nodejs\server
.js:188:5)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.runMain (module.js:492:10)
at process.startup.processNextTick.process._tickCallback (node.js:244:9)

该应用使用的依赖项

"node-uuid": ">= 1.3.3",
"everyauth": ">= 0.2.29",
"nconf": ">= 0.5.1",
"express": ">= 2.5.0",
"jade": ">= 0.18.0",
"less": ">= 1.1.5",
"socket.io": ">= 0.8.7",
"connect": ">=1.8.5",
"recaptcha": ">=1.1.0"

我正在使用节点版本0.8.7。非常感谢任何可能导致此错误的建议

2 个答案:

答案 0 :(得分:2)

Express的compiler中间件来自Connect框架,截至2011年7月Connect不再包含compiler。所以做express.compiler(...)不再有用了。

已经创建了一个特定于LESS的中间件,如果您将它包含在启动配置中,Express现在会使用它。 express -c less会将此行添加到配置中:

  app.use(require('less-middleware')({ src: __dirname + '/public' }));

如果您使用的是较早版本的Express和Connect,则可以将less-middleware添加到package.json并添加上面的行以使其正常运行。

它与原始编译器的工作原理基本相同,但包括更多的花哨功能。

less-middleware project repository

答案 1 :(得分:0)

感谢Hector我解决了这个问题。我有错误版本的快速安装和更改快递到= 2.5.0从&gt; = 2.5.0和重新安装依赖已修复问题,我现在能够运行该应用程序。感谢