我試圖獲得gruntfile連接/ uglify JavaScript文件在Laravel應用程序中工作。我的所有任務都是孤立的工作,但無論出於何種原因,輸入javascript文件的路徑都沒有正確設置。usemin使用錯誤的目錄輸入資產文件
這裏是我的刀模板中的一個例子:
@section('scripts')
<!-- build:js /js/min/page.min.js -->
<script type="text/javascript" src="/js/scrollIt.min.js"></script>
<script type="text/javascript" src="/js/jquery.omniwindow.js"></script>
<script type="text/javascript" src="/js/isotope.min.js"></script>
<!-- endbuild -->
@stop
這裏是我的useminPrepare/usemin任務定義:
useminPrepare: {
html: 'app/views/**/*.blade.php',
options: {
dest: 'app/views/dist'
}
},
usemin: {
options: {
assetDirs: [ 'public/js' ]
},
html: [ 'app/views/dist/**/*.blade.php' ]
},
我還沒有確定uglify
任務,我只是依靠usemin將生成一個。
所有模板都正確地將其置於'app/views/dist'目錄中,並帶有正確的替換(在上面的示例中,模板中包含一個包含public/js/min/page.min.js
的JavaScript文件)。在處理過程中,我注意到輸出:
$ grunt build
Running "useminPrepare:html" (useminPrepare) task
Going through {list of templates} to update the config
Looking for build script HTML comment blocks
Configuration is now:
concat:
{ generated:
{ files:
[ { dest: '.tmp/concat/js/min/page.min.js',
src:
[ 'app/views/course/js/scrollIt.min.js',
'app/views/course/js/jquery.omniwindow.js',
'app/views/course/js/isotope.min.js' ] },
] } }
uglify:
{ generated:
{ files:
[ { dest: 'app/views/dist/js/min/page.min.js',
src: [ '.tmp/concat/js/min/page.min.js' ] },
] } }
cssmin:
{}
正如你可以在上面看到,它是在app/views/course/js
目錄,這是不正確尋找我的JavaScript文件。爲什麼是這樣?我認爲在我的usemin任務中指定assetDirs: ['public/js']
會告訴咕嚕在哪裏找到這些文件。我曾試圖改變腳本引用看起來像這樣:
<script type="text/javascript" src="../../../public/js/scrollIt.min.js"></script>
,這將導致一個成功的構建,但打破我的地方發展,它絕對不是一個解決方案。我是否需要以某種方式覆蓋uglify:generated
任務,如果是這樣,我如何爲具有生成文件名的多個不同模板執行此操作?
如果有必要,你可以看到我的整個Gruntfile.js here。你可以從那裏看到,我還必須添加一個新的copy
任務,用於將app/views/dist/js/min
的Javascript文件複製回public/js/min
。我也想擺脫這一點,但如果我能解決這個問題,我會很高興。