javascript - 用于将多个 Jquery 就绪函数组合成单个就绪函数的 Grunt 任务

标签 javascript jquery gruntjs

我已经准备好了分布在多个文件中的函数,我希望合并和缩小这些文件。是否有一个 grunt 任务可以将所有准备好的任务合并到一个函数中?

// file1.js
$(document).ready(function(){
    $(".class1").click(function () {
        // Some Action
    })
})


// file2.js
$(document).ready(function(){
    $(".class3").on("blur", function () {
        // Some Action
    })
})

// file3.js
$(document).ready(function(){
    $(".class2").on("change", function () {
        // Some Action
    })
})

// file4.js
$(document).ready(function(){
    $(".class3").click(function () {
        // Some Action
    })
})

我正在寻找类似...的东西

// file.js
$(document).ready(function(){
    $(".class1").click(function () {
        // Some Action
    })

    $(".class3").on("blur", function () {
        // Some Action
    })

    $(".class2").on("change", function () {
        // Some Action
    })

    $(".class3").click(function () {
        // Some Action
    })
})

如果我只是运行 grunt 任务来合并所有文件并在使用 grunt-contrib-uglify 合并的文件中包含多个就绪函数,会损害性能吗?

// file.js
$(document).ready(function(){
    $(".class1").click(function () {
        // Some Action
    })
})

$(document).ready(function(){
    $(".class3").on("blur", function () {
        // Some Action
    })
})

$(document).ready(function(){
    $(".class2").on("change", function () {
        // Some Action
    })
})

$(document).ready(function(){
    $(".class3").click(function () {
        // Some Action
    })
})

感谢您检查这个问题。祝你有美好的一天。抱歉,如果这是一个重复的问题。发布此问题是因为在其他地方找不到答案。

最佳答案

您可以使用 grunt-jquery-ready 它将执行您想要的操作。

您应该首先连接所有文件,然后以这种方式使用这个 grunt 插件。我测试了这个并且它有效

grunt.initConfig({
  'jquery-ready' : {
      path: 'path_to_your_folder/your_script_file.js',
      runSync: false
  }
 
  grunt.loadNpmTasks('grunt-jquery-ready');
 
  grunt.registerTask('default', "jquery-ready");
});
结果执行此命令后,我得到了以下格式的文件:

$(document).ready(function(){
  all the content of my script.js file is placed here automatically. 
});

更多信息请参阅主网站:

Wrapping your concatenated .js file into ready function

关于javascript - 用于将多个 Jquery 就绪函数组合成单个就绪函数的 Grunt 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38457668/

相关文章:

intellij-idea - 使用 IntelliJ 调试 CoffeeScript

javascript - 使用图像数组列表的 simplegallary.js 显示适合桌面屏幕的图像

javascript - 使用 jQuery + FadeOut 更改图像源

javascript - 为什么我的 Anytime DateTimePicker jQuery 插件仍然是一个通用文本框?

javascript - 如何用javascript隐藏表格列?

javascript - $.mobile.changePage 在多页中无法正常工作

requirejs - 使 grunt-mocha 与 requirejs 一起工作

php - 在 cakephp 中将数据从 javascript 传递到 PHP

javascript - 使用 jsrsasign 使用加密的 RSA key 签名失败

gruntjs - 如何在 .gitlab-ci.yml 中的 GitLab CI 中部署所有现代工具(Ruby、Node.js、Bower、Grunt、Jekyll)