Javascript grunt导入在完成后不运行任务

Javascript grunt导入在完成后不运行任务,javascript,gruntjs,Javascript,Gruntjs,我正在尝试使用grunt导入插件。除了在完成后不运行已定义的任务外,其他一切都正常工作。我正试图让它在完成后运行我的丑陋:dist任务。当前的文档说明了如何做到这一点,但我似乎无法让它发挥作用 请参见此处grunt导入任务的文档: 以下是我的GrunFile.js中的相关grunt任务 import: { dist: { src: '<%= pkg.assets %>/compile/js/app.js', dest: '<%= pkg.assets %&

我正在尝试使用grunt导入插件。除了在完成后不运行已定义的任务外,其他一切都正常工作。我正试图让它在完成后运行我的丑陋:dist任务。当前的文档说明了如何做到这一点,但我似乎无法让它发挥作用

请参见此处grunt导入任务的文档:

以下是我的GrunFile.js中的相关grunt任务

import: {
  dist: {
    src:  '<%= pkg.assets %>/compile/js/app.js',
    dest: '<%= pkg.assets %>/js/app.js'
  },
  tasks: ['uglify:dist']
},

uglify: {
  dist: {
    files: { 
      '<%= pkg.assets %>/js/app.min.js': ['<%= pkg.assets %>/js/app.js'] 
    }
  }
},

watch: {
  grunt: { files: ['Gruntfile.js'] },

  js: {
    files: ['<%= pkg.assets %>/compile/js/app.js'],
    tasks: ['import'],
    options: {
      livereload: true
    }
  },

  sass: {
    files: '<%= pkg.assets %>/compile/scss/**/*.scss',
    tasks: ['sass'],
    options: {
      interrupt: true,
      livereload: true
    }
  },

  assemble: {
    files: '<%= pkg.app %>/assemble/**/*.hbs',
    tasks: ['assemble'],
    options: {
      livereload: true
    }
  }
}
导入:{
地区:{
src:'/compile/js/app.js',
目标:'/js/app.js'
},
任务:['uglify:dist']
},
丑陋的:{
地区:{
文件:{
“/js/app.min.js”:[”/js/app.js']
}
}
},
观察:{
grunt:{files:['grunfile.js']},
js:{
文件:['/compile/js/app.js'],
任务:[“导入”],
选项:{
利弗雷罗德:没错
}
},
sass:{
文件:'/compile/scss/***.scss',
任务:['sass'],
选项:{
打断:是的,
利弗雷罗德:没错
}
},
汇编:{
文件:'/assembly/***.hbs',
任务:[“组装”],
选项:{
利弗雷罗德:没错
}
}
}

您可能需要将import:dist和uglify:dist注册为新的grunt任务

在GrunFile中,添加:

grunt.registerTask("dist", ["import:dist", "uglify:dist"]);
然后在终端中,键入
grunt dist
,它应该同时运行两个任务:import:dist first和uglify:dist second

编辑:

还要确保您正在将grunt contrib丑陋添加到您的项目中。如果你忘了这么做,它就不会运行了

npm install grunt-contrib-uglify --save-dev

谢谢你,帕特里克。我只注册了这样的任务:grunt.registerTask(“dist”,“import”,“uglify”);那么,您也必须在任务中注册目标吗?是的,除非grunt任务默认包含一个目标(有些做,有些不做)。此外,您还可以创建许多不同的子任务,如开发版本等。。还有一件事:grunt.registerTask(“dist”,“import:dist]”);如果您在import:dist task.interest中指定“tasks:['uglify:dist']”,可能已经足够了。尽管导入任务运行得很好,但它似乎不想运行导入任务中定义的丑陋任务。知道这些都很好。感谢您的帮助。我刚刚确认,仅指定import:dist任务就足以使所有工作正常。