GruntJS 语法理解 - <%= 小于百分号符号

7

以下是来自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']);

};

接下来提到:

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

我的问题:

  1. <%= %>是什么意思?它是gruntjs语法还是在其他地方通用?我在哪里可以找到其定义?

  2. 您寻找解释奇怪符号的一般方法是什么?如果我在Google/StackOverflow中搜索这些字符串(“<%=”、“<%”),无论是否带引号,基本上都没有合理的结果。


2
同意上面的第二点。我不得不谷歌“percent equals grunt”才找到这个帖子。“<%=”没有任何结果,因为搜索引擎使用了它们。 - atconway
1个回答

8
请查看文档
Grunt诞生于ES2015之前。这就是为什么他们发明了自己的模板定界符,而不是采用正确的标记模板字符串,这是现在解决模板问题的方法。
这种语法只是GruntJS的特殊标识,因此它既不普遍也没有其他项目真正使用它。即使不是所有的Grunt项目都使用它,因为你可以设置分隔符
基本上,这意味着config.get将展开这些表达式。在其中,您应该能够编写任何有效的JavaScript代码。在定义符号内部,暴露了grunt对象,它使您可以使用<%=grunt.template.today("yyyy")%>这样的东西来为当前年份创建模板。另请参见config.getconfig.process中的内部信息。
至于您的第二个问题,许多时候您可以将符号写成单词并在您喜欢的搜索引擎中输入。有时,您将对这些符号的概念有所了解;例如,您的问题甚至将它们称为"模板字符串",这是一种语法编程概念,您可以通过谷歌来找到答案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接