2017-08-25 15 views
0

npmをローカルモジュールで使用する際に問題があります。メインプロジェクトのpackage.jsonは本質的であるnpmローカルモジュールの依存関係をインストールする

package.json 
local_module/ 
    - package.json 
    - gulpfile.json 
gulpfile.js 

{ 
    "dependencies": { 
     "local_module": "file:local_module" 
    }, 
    "devDependencies": { 
     "gulp": "..." 
    } 
} 

ローカルモジュールのpackage.jsonは基本的に次のとおりです。

{ 
    "scripts": { 
     "prepublish": "gulp release" 
    }, 
    "devDependencies": { 
     "gulp": "..." 
    } 
} 

私の意図を保つことによって私のプロジェクトのモジュラーを保つある私のプロジェクトの構造は次のようになりますlocal_moduleを独自のパッケージとして使用して、メインプロジェクトの依存関係として使用します。メインプロジェクトでnpm installを実行し、local_modulenode_modulesから使用したいと考えています。ただし、local_moduleは事前公開ステップを実行するためにgulpがインストールされており、メインプロジェクトからnpm installを実行すると、local_moduleの依存関係はインストールされないため、gulpはインストールされないため、事前公開ステップは実行できません。

NPM doesn't install module dependenciesのようないくつかの質問がありましたが、多くは古いものであり、npmのバージョンが非常に多いため、明確な解決策が得られません。

事前公開の前にnpmにlocal_moduleの依存関係をインストールするにはどうすればよいですか?メインプロジェクトのプレインストール手順を追加しようとしました。

"preinstall": "cd local_module && npm install" 

しかし、NPMがメインプロジェクトのためのプリインストールを実行する前に、local_moduleのprepublishステップを実行しようと思われます。私はローカルモジュールでnpm installを実行する前に別のステップを取るのではなく、1つのnpm installステップでこれを行うソリューションが必要です。

答えて

0

すぐに私のために役立つ解決策を見つけました。 npm installがメインプロジェクトから実行されると、prepublishステップはlocal_moduleで最初に実行するので、私もインストールしないためにprepublish強制されるようにゴクゴクが行うことが可能です

{ 
    "scripts": { 
     "prepublish": "npm install --ignore-scripts && gulp release" 
    }, 
    "devDependencies": { 
     "gulp": "..." 
    } 
} 

:私はにlocal_modulepackage.jsonを変更しました実際の事前公開ステップ。しかしこれはほとんど理想的ではありません。

関連する問題