如何设置 gruntfile 以便编译后的文件与其源文件位于同一目录中
How to set up gruntfile so compiled files go on same directory as their source
我正在处理一个使用 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.
我绝对无法更改输出位置,新文件必须与原文件在同一目录下。你有什么想法吗?
所以经过一番修修补补,我的一个朋友想到了这个,以防有人遇到类似的问题!
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'],
}
}
}
还是谢谢=)
我正在处理一个使用 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.
我绝对无法更改输出位置,新文件必须与原文件在同一目录下。你有什么想法吗?
所以经过一番修修补补,我的一个朋友想到了这个,以防有人遇到类似的问题!
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'],
}
}
}
还是谢谢=)