以下是http://gruntjs.com/getting-started的示例gruntjs

module.exports = function(grunt) {

  // Project configuration.
  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    uglify: {
      options: {
        banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
      },
      build: {
        src: 'src/<%= pkg.name %>.js',
        dest: 'build/<%= pkg.name %>.min.js'
      }
    }
  });

  // Load the plugin that provides the "uglify" task.
  grunt.loadNpmTasks('grunt-contrib-uglify');

  // Default task(s).
  grunt.registerTask('default', ['uglify']);

};

然后提到:

因为模板字符串可以引用任何配置属性,所以可以通过这种方式指定配置数据(如文件路径和文件列表)以减少重复。

我的问题:
  • 这个<%= %>是什么意思?它是gruntjs语法还是在其他地方普遍使用?在哪里可以找到它的定义?
  • 搜索隐秘符号解释的一般方法是什么?如果我在google/stackoverflow中搜索这些字符串(“<%=”,“<%”,包括引号或不包括引号),则基本上不会得出合理的结果。
  • 最佳答案

    看看documentation

    Grunt大约在ES2015之前。这就是为什么他们在字符串文字中发明了自己的模板分隔符,而不是使用适当的tagged template strings的原因,这就是当今解决模板问题的方式。

    语法实际上只是GruntJS的东西,所以它既不是通用的,也不是其他项目真正使用它的。甚至不是所有的Grunt项目都使用它,因为您可以set delimiters yourself

    基本上,这意味着config.get将扩展这些表达式。在内部,您应该能够编写任何有效的JavaScript。在分隔符中,暴露了grunt对象,例如,它使您可以使用<%=grunt.template.today("yyyy")%>这样的对象来模板化当前年份。有关内部结构,另请参见config.getconfig.process

    至于第二个问题,很多时候您可以将符号写为单词并将其输入您喜欢的搜索引擎中。有时,您将首先从概念上理解这些符号的含义。您的问题甚至将它们称为“模板字符串”,这是一种语法编程概念,您可以使用googled找到答案。

    09-12 07:42