2017-06-25 9 views
1

テンプレート全体がgitリポジトリにホストされているところで、yeomanジェネレータを作成しようとしています。だから私のヨーマン・ジェネレータのpackage.jsonはすなわち、ちょうどこのパッケージの任意のpostinstallスクリプトを実行し、foo-templateパッケージをインストールからnpm installを防ぐために、どのような方法がありますpackage.json:依存関係をダウンロードするだけですがインストールしないでください

{ 
    "name": "generator-foo", 
    "version": "0.1.0", 
    "description": "", 
    "files": [ 
    "generators" 
    ], 
    "keywords": [ 
    "yeoman-generator" 
    ], 
    "dependencies": { 
    "foo-template": "git://somewhere-in-the-world/foo-template.git#0.1.0", 
    "chalk": "^1.1.3", 
    "yeoman-generator": "^1.1.1", 
    "yosay": "^2.0.0" 
    } 
} 

のように見えますか?代わりに、node_modulesにダウンロードするだけです。

+0

インストールするとどういう意味ですか?インストール後のフックを呼び出すのと同じですか? – jsalonen

+0

[npm:インストールパッケージ中のpostinstallスクリプトを無効にする]の可能な複製(https://stackoverflow.com/questions/23505318/npm-disable-postinstall-script-while-install-package) – jsalonen

+0

いいえ、これと重複していません質問。どちらの質問でも、すべてのインストール後スクリプトを無効にするよう求められます。私が望むのは、foo-templateでpostinstallスクリプトを実行するのを防ぐことですが、他のすべてのパッケージでは実行しません。 –

答えて

1

As describe hereの場合、postinstallスクリプトは、--ignore-scriptsフラグを使用してnpmでグローバルに無効にすることができます。

完全なソリューションとして、私は有効に無視するスクリプトを使用してローカルインストール後のセクションにfoo-templateにあなたの明示的な依存関係を移動します:

{ 
    "name": "generator-foo", 
    ... 
    "postinstall": "npm install --ignore-scripts git://somewhere-in-the-world/foo-template.git#0.1.0", 
    "peerDependencies": { 
    "foo-template": "git://somewhere-in-the-world/foo-template.git#0.1.0" 
    } 
} 

注依存関係が明確に記載されていることを確認するために、我々はとしてそれをマークする必要がありますpeerDependency(例えば、pruneのパッケージ削除を防止する)

関連する問題