私はここで答えを一日中探していましたが、私の設定が台無しになっているだけだと確信しています。
短いバージョン: grunt を構成しました。grunt-contrib-concat WORKS。grunt-contrib-uglify は動作すると言いますが、空のファイルを出力します。
長いバージョン: プロジェクトの構造は次のとおりです。
/projectRoot
->/dev
->/js
/foo.js
/bar.js
->/dist
->/js
foo.js と bar.js を取得して、"app.js" という名前の /dist/js ディレクトリ内のファイルに出力したいと考えています。
これが私の設定です:
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
concat: {
options:{
separator: ';'
},
dist:{
src:["js/foo.js", "js/barjs"],
dest:"../prod/js/app.js"
}
},
uglify:{
dist:{
files:{
"../prod/js/app.min.js":["js/foo.js", "js/bar.js"]
}
}
}
});
/**
* Set up tasks
* @type {string[]}
*/
var taskList = [
"grunt-contrib-concat",
"grunt-contrib-uglify"
];
for(var task in taskList){
grunt.loadNpmTasks(taskList[task]);
}
grunt.registerTask('default', ['concat']);
grunt.registerTask('dist', ['concat','uglify:dist']);
};
はい、Grunt は私の DEV ディレクトリにインストールされています。
私が走るとき
grunt dist
次のコンソール出力が得られます。
Running "concat:dist" (concat) task
File ../prod/js/app.js created.
Running "uglify:dist" (uglify) task
File js/app.min.js created: 319 B → 0 B
Done, without errors.
Process finished with exit code 0
最終的に、ファイル /projectRoot/prod/js/app.min.js を作成することになります
...しかし、それは空です。
私が間違っていることについてのアイデアはありますか?? この構文は、readme およびその他のドキュメントに記載されている内容に正確に従います。concat タスクは正常に機能しています。
どんな助けでも大歓迎です。ありがとう!
--EDIT-- Grunt が projectRoot に存在するように更新しましたが、出力に違いはありません。
==============
アップデート
空のファイルを出力していた理由がわかりました。どうやら自己呼び出しの匿名関数は「縮小」されているか、少なくともこの場合は縮小されています。これは、ここにアクティブなコードがないことが原因である可能性があります。私はこれをさらに調べるつもりです。実際に何かをしたり、グローバル変数を参照したりする関数は残ると思います。
==============
最終更新
問題は解決された。すべてのコードを縮小するオプションを使用しても、参照されていない変数などは削除されます。テスト ファイル内のものは使用されていません。上記の関数への参照を追加すると、それらが表示されます。
これが誰かに役立つことを願っています。