【问题标题】:Trouble using ‘this.files’ in GruntJS Tasks在 GruntJS 任务中使用“this.files”时遇到问题
【发布时间】:2013-11-13 13:08:32
【问题描述】:

背景: 所以我是编写 grunt 任务的新手,所以希望这不是一个愚蠢的问题。
我的 grunt 任务的目的:给定一个文件(html / jsp / php / 等)搜索所有链接 / 脚本标签,将 href / src 与一个键进行比较,并替换为文件的内容。建议的任务配置:

myTask:{
      index:{
          files:{src:"test/testcode/index.html", dest:"test/testcode/index.html"},

          css:[
              {
                  file: "/css/some/css/file.css",
                  fileToReplace:"/target/css/file.css"
              },
              {
                  file: "/css/some/css/file2.css",
                  fileToReplace:"/target/css/file2.css"
              }
          ],
          js:[
              {
                  file: "/css/some/css/file.css",
                  fileToReplace:”/target/css/file.css"
              },
              {
                  file: "/css/some/css/file2.css",
                  fileToReplace:"/target/css/file2.css"
              }
          ]
      }
  }

问题: 现在,根据我的理解,在处理文件时,您应该引用“this.files”对象,因为它为您处理了一堆好东西,对吗?使用 intelliJ 和调试器,我在观看“this.files”对象时看到以下内容:http://i.imgur.com/Gj6iANo.png 我希望看到 src 和 dest 相同,而不是 dest ==='src' 和 src = == 未定义。

那么,我错过了什么?我可以阅读有关“this.files”的一些文档吗?我已经尝试将目标中的 files 属性设置为每个 grunts 规范的许多其他格式,似乎没有一个工作(对于这个脚本,理想情况下 src / dest 将是相同的,所以用户只需输入一次,但我现在还没有进入。)

感谢您的帮助

编辑: 这里的根本问题是我使用 IntelliJ 进行调试。出于某种原因,当我查看 this.files 时,src var(连同 this.fileSrc var)从未更新。即使我会在适当的时候看到其他项目得到更新。

【问题讨论】:

    标签: javascript node.js gruntjs


    【解决方案1】:

    查看文档的配置任务部分:http://gruntjs.com/configuring-tasks

    this.files 使用配置任务页面上列出的支持的配置格式:

    task: {
      target: {
        src: 'source',
        dest: 'destination',
      },
    },
    

    task: {
      target: {
        files: [
          { src: 'source', dest: 'destination' },
          { src: 'source2', dest: 'destination2' },
        ],
      },
    },
    

    task: {
      'destination': 'source',
    },
    

    task: {
      target: {
        files: {
          'destination': 'source',
          'destination2': 'source2',
        },
      },
    },
    

    阅读更多关于this.fileshttp://gruntjs.com/api/inside-tasks#this.files

    【讨论】:

    • 是的,我已经尝试了所有这些,但它们似乎都不起作用。目标始终设置,但 src 始终未定义...如果有帮助,我可以提供代码。
    • 是的,请这样做。仔细检查您的语法以匹配上述内容。确保您没有嵌套目标或任务。
    • Kyle,我已经运行了这些并提出了同样的问题。文件可以在这里找到:pastebin.com/ESswN4sX 好像我做错了什么,我只是不知道是什么,似乎不应该这么难:P 再次感谢您的帮助! -安德鲁
    • 'source''destination' 只是示例,它们应该是您系统上的实际文件。如果您希望 Grunt 在您提供的文件不存在时发出警告,请添加 nonull: true,它会在找不到您提供的文件时通知您。
    • 我明白,但是我的意思是,它应该给〜一些东西〜 src 数组不应该是未定义的......对吗?即使我将真实文件放在那里,它仍然以未定义的形式返回。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-27
    • 2020-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多