2014-11-04 33 views
0

我是Yeoman,Grunt和Bower的新手,當然在構建發行版時遇到了一些麻煩。Grunt - 構建dist後的插件文件夾disapper

我用Yeoman腳手架一個webapp,構建代碼,添加了一個外部插件(沒有通過bower,沒有該插件的包,所以我只複製了插件文件夾並在我的index.html中添加了引用)

當運行繁重的服務一切正常,我第一次建成了分佈

grunt 

我只好回了很多jshint錯誤的有關外部插件(缺少分號等等小東西),所以我只需要運行

grunt --force 

有我的dist建成。

在dist文件夾中,缺少外部插件文件夾和文件,因此在構建過程中刪除了文件夾(但index.html文件包含對文件的所有引用)。

因此,與

grunt serve:dist 

我有我的瀏覽器上的DIST,但沒有插件。此時,我將插件文件夾複製到dist文件夾的正確位置,重新載入頁面,並且插件正在工作。然後殺的過程中,我又

grunt serve:dist 

運行此命令後,該插件文件夾(我手動複製)剛剛消失,使我認識到,複製和粘貼是不是把事情工作的正確途徑。

我該如何告訴grunt(或bower)在同一個地方離開該文件夾(在js文件夾內),不要試圖壓縮裏面的文件,忽略jsint驗證並且不要刪除它?

如果我想在根文件夾中添加一個新文件夾(例如jsons),該怎麼辦?何時建立分銷也會被刪除?有沒有一個地方可以告訴咕嚕什麼文件夾包括/忽略?

感謝

---- ----編輯

這是Gruntfile.js

我的 「複製」 任務
copy: { 
    dist: { 
    files: [{ 
     expand: true, 
     dot: true, 
     cwd: '<%= config.app %>', 
     dest: '<%= config.dist %>', 
     src: [ 
     '*.{ico,png,txt}', 
     'images/{,*/}*.webp', 
     '{,*/}*.html', 
     'styles/fonts/{,*/}*.*' 
     ] 
    }, { 
     src: 'node_modules/apache-server-configs/dist/.htaccess', 
     dest: '<%= config.dist %>/.htaccess' 
    }] 
    }, 
    styles: { 
    expand: true, 
    dot: true, 
    cwd: '<%= config.app %>/styles', 
    dest: '.tmp/styles/', 
    src: '{,*/}*.css' 
    } 
} 
+0

每當您運行'grunt serve:dist'(或'grunt dist')時,dist文件夾將從頭開始重建。我建議你閱讀http://gruntjs.com/getting-started ...(並且避免用'--force'運行咕嚕聲,如果不是暫時的...) – MarcoS 2014-11-04 15:46:57

+0

是的,我經歷過......但是如何我可以在建成的dist中包含該文件夾嗎? – peppeocchi 2014-11-04 15:51:02

+0

看到我的答案,作爲一個例子(希望它可以爲你提供任何幫助......) – MarcoS 2014-11-04 15:59:26

回答

1

這在 '生產' Gruntfile.js的提取物:

module.exports = function (grunt) { 

    copy: { 
    dist: { 
     files: [{ 
     expand: true, 
     dot: true, 
     cwd: '<%= yeoman.app %>', 
     dest: '<%= yeoman.dist %>', 
     src: [ 
      //'*.{ico,png,txt}', 
      '*.{txt}', 
      '.htaccess', 
      '*.html', 
      '*.appcache', 
      'views/{,*/}*.html', 
      'images/{,*/}*.{webp}', 
      'icons/**/*.{ico,png}', 
      'scripts/i18n/{,*/}*.js', 
      'i18n/{,*/}*.json', 
     ] 
     }, { 
     expand: true, 
     cwd: '.tmp/images', 
     dest: '<%= yeoman.dist %>/images', 
     src: ['generated/*'] 
     }, { 
     expand: true, 
     cwd: 'bower_components/bootstrap/dist', 
     src: 'fonts/*', 
     dest: '<%= yeoman.dist %>' 
     }, { 
     expand: true, 
     cwd: 'bower_components/open-sans-fontface', 
     src: 'fonts/**/*', 
     dest: '<%= yeoman.dist %>/styles' 
     }, { 
     expand: true, 
     cwd: 'bower_components/font-awesome', 
     src: 'fonts/*', 
     dest: '<%= yeoman.dist %>' 
     }] 
    }, 
    }, 

    ... 

    grunt.registerTask('build', [ 
    'clean:dist', 
    ... 
    'copy:dist', 
    ... 
    ]); 

    grunt.registerTask('default', [ 
    'build', 
    ]); 

}; 

,閱讀http://gruntjs.com/getting-started(這是一個五分鐘的任務... :-)。

+0

是的,你對文檔是正確的,我只是找不到合適的地方去看。爲什麼它正在刪除文件夾?我假設您示例中的第一個應用程序文件夾是dist文件夾的副本,有一個expand:true,所以我假設它複製該文件夾中的所有內容(並且執行諸如縮小等等的操作),我必須手動添加src文件夾:? 感謝您的幫助! PS:我更新了與我的Gruntfile.js相同的解壓縮文件的答案 – peppeocchi 2014-11-04 16:20:45

+0

剛剛添加,效果很好,謝謝! – peppeocchi 2014-11-04 16:26:50

相關問題