Grunt - 插件文件夹在构建dist后消失

时间:2014-11-04 14:13:04

标签: javascript gruntjs yeoman bower

我是Yeoman,Grunt和Bower的新手,当然我在制作发行版时遇到了一些麻烦。

我使用Yeoman来构建一个webapp,构建了代码,添加了一个外部插件(不是通过bower,没有该插件的包,所以我只是复制了插件文件夹并在index.html中添加了引用)< / p>

当运行grunt服务时,一切正常,我第一次使用

构建分发
grunt

我有很多关于外部插件的jshint错误(缺少分号等......小东西),所以我只需要运行

grunt --force

建立我的dist。

在dist文件夹中,外部插件文件夹和文件丢失,因此在构建过程中该文件夹已被删除(但index.html文件具有对文件的所有引用)。

所以用

grunt serve:dist

我在浏览器上有我的dist,但没有插件。此时我将插件文件夹复制到dist文件夹的正确位置,重新加载页面,插件正在运行。然后杀死了这个过程,我又跑了

grunt serve:dist

在此命令之后,插件文件夹(我手动复制)刚刚消失,所以我意识到复制和粘贴不是使工作正常的正确方法。

我如何告诉grunt(或bower)将该文件夹(在js文件夹中)留在同一位置,不要尝试压缩里面的文件,忽略js验证用jshint,而不是删除它?

如果我想在根文件夹中添加新文件夹(例如jsons),该怎么办?建立分销时也会被删除吗?有没有一个地方我可以告诉grunt要包含/忽略哪个文件夹?

由于

----编辑----

这是我在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'
  }
}

1 个答案:

答案 0 :(得分: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(这是一个五分钟的任务......: - )。