2017-09-08 9 views
0

このパッケージをインストールしました:https://github.com/feathersjs/feathers-authentication-local(質問はこのパッケージに特に関係しません)。このパッケージのソースコードは./srcであり、npm run compileは、メインエントリポイントである./libにバベル翻訳コードを置きます。npmインストール後にバベルでトランスペアリングする

私の質問は、npm install feathers-authentication-localの後で、npmはそれがnpm run compileを実行する必要があることをどのように知っていますか?私はスクリプトをpackage.jsonに入れることを考えましたが、このパッケージには含まれていません。

答えて

1

パブリッシュ時にnpmにアップロードされる内容は、アップロードする内容を指定するために使用するpackage.json、ファイル、ディレクトリの2つのフィールドがあります。

それはモジュールをインポートするときに、あなたのaplicationで使用されるファイルを指して、「メイン」プロパティにも同様に見てみましょう:

import foo from 'foo' 

はnode_modules/fooの/ $(メインになります)lib/

0

パッケージは実際にクライアントのマシンにインストールした後ではコンパイルされませんが、おそらくmantainerのマシンでコンパイルされ、NPMに公開されます。

prepublishスクリプトpackage.jsonでコンパイルプロセスが起動されます。

+0

'lib /'フォルダは.gitignoreにあります。したがって、 'npm publish'を実行すると、gitによって追跡されるものだけでなく、そのフォルダにすべてのものが公開されます。この場合、 'node_modules /'も公開されていますか? – amaurymartiny

+0

'node_modules'はデフォルトで公開されていません。 [除外されたファイルのデフォルトの詳細については、[こちらを読む](https://docs.npmjs.com/misc/developers#keeping-files-out-of-your-package)を参照してください。 'lib /'フォルダは実際には '.npmignore'によって明示的にインクルード(または無視されません)されます:'! –

+0

受け入れられた回答には何が書かれていますか? "package.jsonの2つのフィールド、ファイルとディレクトリ、アップロードする内容を指定するために使用される"。もし ''ディレクトリ:["lib /"] 'をpackage.jsonに入れ、.npmignoreで' lib/'を無視するとどうなりますか? – amaurymartiny

関連する問題