0

次のフォルダー構造を検討してください。

- lib
  + main.js
  + optional.js
- src
  + main.coffee
  + optional.coffee
+ package.json

メインファイルをpackage.json問題なく指定できます:

  "main": "./lib/main",

しかし、私require('package-name/optional')が欲しいとき./lib/optional。どうすればそれを指定できますか/動作させることができますか?

4

2 に答える 2

1

モジュール名は必要なスクリプトのパスとして解決されるため、これは不可能です。

mainオプションを指定できる理由は、 は(どこで見つけられるか) に解決されるのに対しpackage-name、はまったく別のパスに解決されるためです。node_modules/package-namepackage.jsonpackage-name/optionnode_modules/package-name/option

モジュール パスがどのように解決されるかを確認したい場合は、こちらのノード ソースを参照してください。パス解決につながる関数の順序は次のようになります。

Module.prototype.require
Module._load
Module._resolveFilename
Module._resolveLookupPaths
于 2013-11-05T23:33:06.967 に答える
0

パッケージ名の下にファイル/フォルダーを指定できますが、ヘキサシアニドが指摘したように、その特定のファイルにカスタムの require オプションを指定することはできません。例えば:

require('package-name/lib/optional')
于 2013-11-05T23:43:41.690 に答える