0

UglifyJS2を使用して、JavaScript ソース ファイルを 1 つの大きな縮小ファイルに縮小しています。私が使用する関連するコードは次のとおりです。

var options = options || {};
options.outSourceMap = 'minfile.js.map';

try {
    // "scripts" is an array of absolute paths to the javascript files
    var minified = uglifyjs.minify(scripts, options);

    // minified.map contains the minfile
} catch (err) {
    // handle errs here
}

minfile 自体には、ソース ファイルへの絶対パスが含まれています。

{
    "version": 3,
    "file": "nodebb.min.js.map",
    "sources": [
        "/path/to/folder/jquery/js/jquery.js",
        "/path/to/folder/another/lib.js",
        ...
    ],
    ...
}

問題は、私が渡しているソース ファイルが公にアクセスできないことです。それらは minfile にコンパイルされるだけで、minfile だけにアクセスできます。したがって、Chrome (私の場合) はhttp://mydomain.com/path/to/folder/jquery/js/jquery.jsローカル fs のファイルを読み取る代わりにロードしようとするため、ソース マップは無意味に見えます。

私は何を間違っていますか?

4

2 に答える 2

0

別のオプションは、「ハードウェイ」を使用することです

そして、「ソースマップの生成」source_map.toString()では使用する代わりに

var json = source_map.get().toJSON();
json.sources = [ /* override sources */ ];
JSON.stringify(json);
于 2015-08-27T17:51:29.577 に答える
0

UglifyJS2リポジトリにはノード API の一連のオプションが欠けているようですが、この PR で少し修正されました: https://github.com/mishoo/UglifyJS2/pull/192

だから私はpackage.json今それを使っています:

"dependencies": {
    ...
    "uglify-js": "git+https://github.com/julianlam/UglifyJS2.git",
    ...
}

次に、メソッドにprefix渡して、パスの不要な部分を切り取ることができます。minify

于 2014-05-31T01:52:32.210 に答える