我目前正在开发一个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。非常感谢任何可能导致此错误的建议
答案 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
并添加上面的行以使其正常运行。
它与原始编译器的工作原理基本相同,但包括更多的花哨功能。
答案 1 :(得分:0)
感谢Hector我解决了这个问题。我有错误版本的快速安装和更改快递到= 2.5.0从&gt; = 2.5.0和重新安装依赖已修复问题,我现在能够运行该应用程序。感谢