145

私は webpack を初めて使用し、既存の Web アプリケーションを変換して使用しています。

私は webpack を使用して JS をバンドルおよび縮小していますが、これは展開時に優れていますが、これにより開発中のデバッグが非常に困難になります。

通常、Chrome の組み込みデバッガーを使用して JS の問題をデバッグします。(またはFirefoxのFirebug)。ただし、webpack ではすべてが 1 つのファイルに詰め込まれるため、そのメカニズムを使用してデバッグするのは困難になります。

バンドリングをすばやくオンまたはオフにする方法はありますか? または縮小化をオンまたはオフにしますか?

スクリプト ローダーの構成またはその他の設定があるかどうかを確認しましたが、明らかではないようです。

すべてをモジュールのように機能させ、require を使用するように変換する時間はまだありません。したがって、ロードには単に require("script!./file.js") パターンを使用します。

4

5 に答える 5

108

ソース マップを使用して、ソース コードとバンドル/縮小されたソース コードの間のマッピングを保持できます。

Webpack は、バンドルされたファイルのソース マップを作成するだけで、開発者ツールでのデバッグを強化するdevtoolオプションを提供します。このオプションは、コマンド ラインから使用するか、webpack.config.js構成ファイルで使用できます。

以下に、コマンド ラインを使用して、生成されたソース マップ ファイル ( bundle.js.map ) と共にバンドル ファイル ( bundle.js ) を生成する不自然な例示します

$ webpack --devtool source-map ./entry.js bundle.js
Hash: b13b8d9e3292806f8563
Version: webpack 1.12.2
Time: 90ms
        Asset     Size  Chunks             Chunk Names
    bundle.js  1.74 kB       0  [emitted]  main
bundle.js.map  1.89 kB       0  [emitted]  main
   [0] ./entry.js 85 bytes {0} [built]
   [1] ./hello.js 59 bytes {0} [built]

index.html

<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <script src="bundle.js"></script>
  </body>
</html>

entry.js

var hello = require('./hello.js');
document.body.innerHTML += 'It works ' + hello();

hello.js

module.exports = function () {
  return 'Hello world!';
};

ブラウザーでindex.htmlを開くと (私は Chrome を使用していますが、他のブラウザーでもサポートされていると思います)、[ソース] タブに、バンドルされたファイルがfile://スキームの下にあり、ソース ファイルが下にあることがわかります。特別なwebpack://スキーム。

ソース マップを使用してデバッグする

はい、元のソース コードがあるかのようにデバッグを開始できます。ブレークポイントを 1 行に配置して、ページを更新してみてください。

ソースマップによるブレークポイント

于 2015-10-29T19:11:20.913 に答える
1

こちらをご覧ください

JavaScript を弱体化させる美化ツールです。下部には、ブラウザ用のさまざまなプラグインと拡張機能のリストがあります。チェックしてください。

FireFox Deminifierに興味があるかもしれません。これは、サーバーから取得したときに JavaScript を deminify してスタイルを設定することになっています。

ここに画像の説明を入力
(出典: mozilla.net )

于 2014-12-23T19:35:41.867 に答える