如何设置 gruntfile 使编译后的文件与源文件位于同一目录中

Posted

技术标签:

【中文标题】如何设置 gruntfile 使编译后的文件与源文件位于同一目录中【英文标题】:How to set up gruntfile so compiled files go on same directory as their source 【发布时间】:2020-02-21 02:13:26 【问题描述】:

我正在开发一个使用 Grunt 0.3 和 Coffee 的非常古老的项目,我需要将其更新为两者的较新版本,但我对 Grunt 并不是特别熟悉。以前,Grunt 会将 .js 文件编译到与源 .coffee 文件完全相同的文件夹和名称,我需要保持这种方式。但是,我在配置任务时遇到了麻烦。这就是我现在拥有的:

coffee: 
  options: 
  bare: true,
  sourceMap: true,
  expand: true,
  flatten: false,
  cwd: '.',
  src: ['**/*.coffee'],
  dest: '.',
  ext: ".js"
  
  

这是我收到的消息:

C:\projetos\sesc-bertioga\bertioga-server\src\main\webapp (newGrunt -> origin) (sesc-bertioga@1.0.0)
λ grunt watch
Running "watch" task
Waiting...
>> File "public\javascript\app\views\solicitacao_grupo\tripulacao_view.coffee" changed.
>> No "coffee" targets found.
Warning: Task "coffee" failed. Use --force to continue.

绝对无法更改输出位置,新文件必须与原始文件在同一目录下。你有什么想法吗?

【问题讨论】:

【参考方案1】:

所以经过一番修改,我的一个朋友想出了这个,以防万一有人遇到类似的问题!

coffee: 
      files: 
        expand: true,
        cwd: 'public/javascript/app',
        src: ['**/*.coffee'],
        dest: 'public/javascript/app/',
        ext: '.js',
        rename: (dest, src) => 
          return (dest + src.replace('coffee', 'js'))
        
      ,
      options: 
        bare: false,
        sourceMap: false,
        flatten: false,
        app: 
          src: ['public/javascript/app/**/*.coffee'],
        
      
      

还是谢谢 =)

【讨论】:

以上是关于如何设置 gruntfile 使编译后的文件与源文件位于同一目录中的主要内容,如果未能解决你的问题,请参考以下文章

java源文件编译时要放在哪里?

eclipse编译后的class文件在哪

1.java源文件 扩展名

knockoutjs 读源码

.class 和 .java 区别

Gruntfile.js模板