[解決済み] Gulp + WebpackかJUST Webpackか?
質問
gulpとwebpackを併用している人を見かけます。 しかし、webpackはgulpを置き換えることができると読みました? 私はここで完全に混乱しています...誰か説明できますか?
アップデイト
結局、私はgulpから始めました。モダンなフロントエンドは初めてだったので、とにかく早く立ち上げたかったのです。1年以上経って足がかなり濡れたので、webpackに移行する準備ができました。同じ靴で始める人には、同じルートをお勧めします。webpackを試せないとは言いませんが、複雑そうに見えるなら、まずgulpから始めるといいでしょう...何も問題はありません。
gulpが嫌なら、gruntもありますが、package.jsonでコマンドを指定して、タスクランナーなしでコマンドラインから呼び出せば、最初に起動することができます。 例えば、以下のような感じです。
"scripts": {
"babel": "babel src -d build",
"browserify": "browserify build/client/app.js -o dist/client/scripts/app.bundle.js",
"build": "npm run clean && npm run babel && npm run prepare && npm run browserify",
"clean": "rm -rf build && rm -rf dist",
"copy:server": "cp build/server.js dist/server.js",
"copy:index": "cp src/client/index.html dist/client/index.html",
"copy": "npm run copy:server && npm run copy:index",
"prepare": "mkdir -p dist/client/scripts/ && npm run copy",
"start": "node dist/server"
},
解決方法は?
この回答が参考になるかもしれません。 タスクランナー(Gulp、Gruntなど)とバンドラー(Webpack、Browserify)。なぜ一緒に使うのか?
...そして、gulpタスクの中からwebpackを使用する例です。 これはさらに一歩進んで、webpack の設定が es6 で書かれていると仮定しています。
var gulp = require('gulp');
var webpack = require('webpack');
var gutil = require('gutil');
var babel = require('babel/register');
var config = require(path.join('../..', 'webpack.config.es6.js'));
gulp.task('webpack-es6-test', function(done){
webpack(config).run(onBuild(done));
});
function onBuild(done) {
return function(err, stats) {
if (err) {
gutil.log('Error', err);
if (done) {
done();
}
} else {
Object.keys(stats.compilation.assets).forEach(function(key) {
gutil.log('Webpack: output ', gutil.colors.green(key));
});
gutil.log('Webpack: ', gutil.colors.blue('finished ', stats.compilation.name));
if (done) {
done();
}
}
}
}
アプリが複雑になってくると、上記の例のようにgulpとwebpackのタスクを併用した方が良いことが分かると思います。 これにより、webpack ローダーやプラグインではできない、出力ディレクトリの作成、サーバーの起動など、より興味深いことをビルドで実行できるようになります。 まあ、簡潔に言うと、webpackは実際にそういったことができるのですが、長期的なニーズには限りがあると感じるかもしれません。 gulp -> webpackから得られる最大の利点の1つは、様々な環境に応じてwebpackの設定をカスタマイズし、gulpに適切なタスクを適切なタイミングで実行させることができることです。 実際、gulpからwebpackを実行することは何も問題ありません。 面白い の例です。 上の例は、基本的に ロングスター .
関連
-
[解決済み] テスト
-
[解決済み] エラー: nodejs の get 呼び出しで getaddrinfo ENOTFOUND が発生しました。
-
[解決済み】AWS Lambdaでnodejsの「ref」モジュールを使用すると「invalid ELF header」と表示される件
-
[解決済み】 console.logの出力をどこに永久保存するか?
-
[解決済み] 非推奨パッケージに関するNPM警告メッセージ
-
[解決済み】passport.js passport.initialize() ミドルウェアが使用されていません。
-
[解決済み】NPMインストールエラー:解析中の予期せぬJSON入力の終了 '...nt-webpack-plugin": "0'' 付近。
-
[解決済み] bodyParser は非推奨です express 4
-
[解決済み] TypeError: コールバックはnodejsの関数ではありません。
-
[解決済み] Macでポート3000をロックしているプロセスを見つける(そして殺す)【終了
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Node Version Manager のインストール - nvm コマンドが見つかりません。
-
[解決済み】MongoClient v3.0使用時、db.collectionは関数ではない
-
[解決済み】Express.js req.bodyが未定義です。
-
[解決済み】MongoDBのデータ/DBが見つからない
-
[解決済み】Node.jsのホスト名/IPが証明書のaltnamesと一致しない。
-
[解決済み】E11000重複キーエラー mongodb mongooseのインデックス
-
[解決済み] Passport JSのreq.isAuthenticated()はどのように実装されていますか?[クローズド]
-
[解決済み] TypeError: コールバックはnodejsの関数ではありません。
-
[解決済み] TypeErrorです。リクエストパスにエスケープされていない文字が含まれています。
-
[解決済み] Mongoose Schema がモデルとして登録されていません。