8

ここで非常に基本的なものが欠けているように感じます...

だから私はnpmライブラリをインストールしnpm install somelibます. そして、私が読んだことから、私は簡単にできるはずです

var somelib = require('somelib');

しかし、何も見つかりません。アプリのルートにディレクトリがありますが、node_modulesそれを取得していないようです。

試しrequire.paths.push('node_modules')ましたが、役に立ちません。うまくいくように見える唯一のものはこれです:

require.paths.unshift('.');
var somelib = require('node_modules/somelib/lib/somelib');

これは、npm ライブラリをロードするために実際に必要な作業よりもはるかに多くの作業のように感じさせます。ここで何が間違っていますか?アプリにモジュールをインストールすると、環境変数やパスをあまり気にする必要がなくなると思いましたか?

4

2 に答える 2

4

ファイルが定義されてsomelibいないか、誤って参照されている可能性があります。がないが、ある場合は、代わりに行うことができます。mainpackage.jsonsomelibmaindirectories.librequire('somelib/thefile.js')

がcoffeescriptで書かれていて、アプリがそうでない場合は、最初somelibに行う必要があります。require('coffee-script')

更新:js2coffee coffeescriptと同様に、後者を実行する必要があります。

于 2011-06-24T06:59:18.800 に答える
1

「somelib」の代わりに特定のモジュール名を使用すると役立つ場合がありますが、パッケージのpackage.jsonファイルを確認してください。を表示しrequire.pathsて比較します。ノードのモジュールシステムを読む

于 2011-06-24T05:19:04.097 に答える