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 と 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 に答える