2014-11-04 70 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