2

我目前正在开发一个 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。非常感谢您对可能导致此错误的任何建议

4

2 回答 2

2

Express的compiler中间件来自 Connect 框架,自 2011 年 7 月起,Connect 不再包括compiler. 所以再做express.compiler(...)也行不通了。

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

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

如果您有旧版本的 Express and Connect,您可以添加less-middleware到您的package.json并添加上面的行以使其正常工作。

它的工作原理与原始编译器几乎相同,但包含更多的花里胡哨。

少中间件项目存储库

于 2013-01-16T21:28:16.560 回答
0

感谢赫克托,我解决了这个问题。我安装了错误版本的 express 并将 express 从 >=2.5.0 更改为 = 2.5.0 并重新安装依赖项已解决问题,我现在可以运行该应用程序。谢谢

于 2012-08-21T13:40:30.910 回答