2016-03-29 12 views
0

私はWebPACKのとhtml-のWebPACK - プラグインがNPMの-gと一緒にインストールされている場合、この問題は他の場所で報告されています知っている:のWebPACKのhtml-のWebPACK - プラグイン、エラーでグローバルにインストール

module.js:341 
    throw err; 
    ^

Error: Cannot find module 'html-webpack-plugin' 
    at Function.Module._resolveFilename (module.js:339:15) 

と答え人を見つけたのはinstall one or both locally to the projectです。しかし、それは私にとってはうまくいかないでしょう。私は私の開発環境だけでなく、私たちの共有ビルドシステムでこれを動作させる必要があります。これは、Jenkinsが運営するant/nantビルドスクリプトを使用して、すべてのプロジェクトにアクセスできるように、グローバルにインストールすることを意味します。

私のプロジェクトは非常に簡単です。 html with scriptタグに含まれるreactJSスクリプトによって生成されたコンテンツを含むhtmlページのカップル。これは簡単で、痛みが始まるはずです。 webpackをダンプし、別のシンプルなjavascriptパッケージマネージャーを探しています。

webpackにグローバルノードのnode_modulesディレクトリで 'require'dプラグイン/パッケージを探すように指示する環境変数がありますか?

提案?

+0

あなたは両方のローカルおよびグローバルインストールすることはできません。ここに

とは、コマンドが実行され、簡単なbashスクリプトのですか? – aw04

+0

私は自分の開発環境でローカルに行うことはできますが、ビルドサーバーではできません。ビルドサーバーはビルド環境を必要に応じて作成/破棄し、ビルドを開始する前にhtml-webpack-pluginを特別なスクリプトを使ってローカルにインストールしておくのがいいですね。 – MonkeyWrench

答えて

0

Jenkins用にwebpackをグローバルにインストールする必要はありません。 このように、スクリプトの下であなたのpackage.jsonに地元のWebPACKを実行するコマンドを追加します。

"scripts": { 
    "start": "webpack-dev-server --inline --hot", 
    "build": "webpack -p" 
    }, 

今ジェンキンスさんは、グローバルのWebPACKをインストールしなくても、ビルドスクリプトを実行することができますで

npm run build 

をこの方法で、webpackのバージョンが異なる複数のプロジェクトを管理することができ、各プロジェクトにはローカル依存関係を持たせることができます。

スクリプトのpropは、project.jsonの一部です。 package.jsonには、プロジェクトのすべての依存関係とdev依存関係(ビルド、テストなど)が含まれています。ビルドマシンでNPM installを実行しているpackage.jsonを使用すると、すべての依存関係をローカル(プロジェクトディレクトリの一部)にインストールできます。 WebPACKので構築された角度のプロジェクトのためのpackage.jsonのサンプル:

{ 
    "name": "whatever", 
    "version": "1.2.0", 
    "description": "whatever", 
    "scripts": { 
    "start": "webpack-dev-server --inline --hot", // runs the dev server 
    "build": "webpack -p" // builds the release 
    }, 
    "dependencies": { // the dependencies that are part of the actual release 
    "angular": "1.5.0", 
    "angular-animate": "1.5.0", 
    "angular-messages": "1.5.0", 
    "angular-ui-router": "0.2.15" 
    }, 
    "devDependencies": { // build dependencies 
    "babel-core": "6.5.2", 
    "babel-eslint": "6.0.0-beta.1", 
    "babel-loader": "6.2.3", 
    "babel-preset-es2015": "6.5.0", 
    "babel-preset-stage-0": "6.5.0", 
    "css-loader": "0.23.1", 
    "file-loader": "0.8.5", 
    "html-loader": "0.4.3", 
    "html-webpack-plugin": "2.14.0", 
    "less-loader": "2.2.2", 
    "style-loader": "0.13.0", 
    "url-loader": "0.5.7", 
    "webpack": "1.12.14", 
    "webpack-dev-server": "1.14.1" 
    }, 
    "license": "MIT" 
} 

のgitマスターが更新されるたびに、ジェンキンスは、プロジェクト内のすべての依存関係、および実行を含め、現在のビルドディレクトリをきれいに、コミット最新の引っ張りますプロジェクトフォルダ npm run buildの一環として

ジェンキンスはWebPACKのか、他のビルドツールや依存関係を認識していないリリースを構築するために、局部的にすべての依存関係をインストールする npm install:次のコマンドをフォルダ。 Jenkinsにグローバルにインストールされるのはnodejとnpmのみです。

rm -rf node_modules || true // remove node_modules (all deps) 
npm install // install all deps 
npm run build // run the build script 
+0

ありがとうございますが、プロジェクトごとに異なるバージョンのWebpackを用意する必要はありません。なぜ私たちはこのプロジェクトをローカルにインストールする必要があるのか​​まだ分かりません。私はnpmには新しく、上のスクリプトが何をするかを並べ替える必要があります。 – MonkeyWrench

+0

詳細をいくつか追加します。 –

+0

html-webpack-pluginをローカルにプロジェクトにインストールするにはどうすればいいですか? – MonkeyWrench

関連する問題