首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Concat和minify Bootstrap js

Concat和minify Bootstrap js
EN

Stack Overflow用户
提问于 2014-06-18 05:27:26
回答 1查看 2.6K关注 0票数 2

我使用Bootstrap搭建一个项目,使用Grunt构建用于生产的文件。

我是否应该合并和缩小js文件。

我尝试过这样做,但是js文件停止工作。

更多的解释:

我正在开发一个Wordpress主题,使用Bootstrap和Grunt来缩小css和js用于生产。

我有一个dev主题和一个dist主题。

在开发主题中,我有一个js文件夹,里面有bootstrap js和一个包含主题的js的project.js文件。

在Wordpress my project.js works中使用开发主题(页面加载时的简单测试警报)。

在grunt文件中,我在complete.js中将所有的js文件连接在一起。这是可行的,我有一个包含所有js的文件。

然后,我将缩小js并将其复制到dist-theme中以生成complete.min.js。

在dist主题中,我引用了complete.min.js,但我的警告不再起作用。

dev-doesn js文件夹中还包含了在dev-doesn中工作的moderniser,但是在拼接和缩小之后,它在dist-doesn中不起作用。

我的呼叫声文件。

代码语言:javascript
复制
'use strict';

module.exports = function(grunt){

    require('load-grunt-tasks')(grunt);

    grunt.initConfig({

        pkg: grunt.file.readJSON('package.json'),

        yeoman:{
            dev: 'dev-theme',
            dist: 'dist-theme'
        },

        jshint: {
      files: ['dev-theme/js/*.js'],//all files with .js
      options: {
        // options here to override JSHint defaults
        globals: {
          jQuery: true,
          console: true,
          module: true,
          document: true
        }
      }
    },

        sass:{
            dist:{
                files:{
                    'dev-theme/css/styles.css' : 'dev-theme/css/bootstrap.scss'
                }
            }
        },

        cssmin : {
            css:{
            src: 'dev-theme/css/styles.css',
        dest: 'dist-theme/css/styles.min.css'
        }
    },

        concat:{
            dist:{
                src:['dev-theme/js/**/*.js'],
                dest:'dev-theme/js/complete.js'
            }
        },

        uglify : {
            js: {
                src: ['dev-theme/js/complete.js'],
        dest: 'dist-theme/js/complete.min.js'
      }
        },

        watch:{

            css:{
                files: 'dev-theme/css/**/*.scss',
                tasks:['sass'],
                options:{
                    livereload: true
                }
            },

            js:{
                files:'dev-theme/js/**/*.js',
                tasks:['jshint'],
                options:{
                    livereload: true
                }
            }

        },

        clean: {
        dist: {
            files: [{
                dot: true,
                src: [
                    //'.tmp',
                    'dist-theme/*',
                                        //don't clean
                                        '!dist-theme/style.css',
                                        '!dist-theme/screenshot.png',
                                        '!dist-theme/functions.php',
                ]
            }]
        }
    },


        copy: {
        dist: {
            files: [{
                expand: true,
                dot: true,
                cwd: 'dev-theme',
                dest: 'dist-theme/',
                src: [
                    '*.{ico,txt}',
                    '.htaccess',
                    'images/{,*/}*',
                                        'fonts/{,*/}*',
                    '{,*/}*.html',
                                        '{,*/}*.php',

                                        //don't clean
                                        '!functions.php',
                ]
            }]
        }
    }                       
    });

    grunt.registerTask('default', ['watch']);
    grunt.registerTask('build', ['clean:dist','cssmin','concat','uglify','copy:dist']);
    grunt.registerTask('webfont', ['webfont']);

} 
EN

回答 1

Stack Overflow用户

发布于 2014-06-19 01:30:58

一些脚本需要按顺序加载。使用glob并不能保证正确的顺序。因此,如果通用concat全局返回的文件数组按字母顺序排列,则bootstrap.js将在其依赖项之前加载。这可不好!

我会更改concat块,使其看起来像这样:

代码语言:javascript
复制
concat:{
  dist:{
    src:[
          'dev-theme/js/modernizr.js',
          'dev-theme/js/bootstrap.js',
          'dev-theme/js/**/*.js'
        ],
    dest:'dev-theme/js/complete.js'
  }
},

如果您使用的不是WordPress附带的jQuery版本,则需要将其添加到src列表中。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24273594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档