【问题标题】:Using Grunt to watch all files in my src directory and output to build使用 Grunt 监视我的 src 目录中的所有文件并输出到构建
【发布时间】:2017-09-19 04:38:17
【问题描述】:
我对 Grunt 完全陌生,我想在我的下一个项目中使用它。
我想要做的是,例如,将src/server.coffee 处的文件编译为build/server.js,并将src/public/assets/css/global.less 处的文件编译为build/public/assets/css/global.css。
这意味着我想在src 之后保持相同的文件路径,以及每个文件的相同名称,只更改其扩展名。我可以为项目中的每个文件手动执行此操作,但我真的希望 Grunt 对 src 文件夹中的每个文件执行此操作。
我怎样才能完成这项工作?
【问题讨论】:
标签:
javascript
node.js
gruntjs
grunt-contrib-less
grunt-contrib-coffee
【解决方案1】:
似乎我在文档中找到了答案——我只是不知道如何寻找它。
我想要做的是调用 globbing:为 Gruntfile 设置全局例程。它看起来像这样(在 CoffeeScript 中):
module.exports = (grunt) ->
grunt.initConfig
pkg: grunt.file.readJSON "package.json"
coffee:
files:
expand: true
cwd: "src/"
flatten: false
src: ["**/*.coffee"]
dest: "build/"
ext: ".js"
less:
files:
expand: true
cwd: "src/"
flatten: false
src: ["**/*.less"]
dest: "build/"
ext: ".css"
grunt.loadNpmTasks 'grunt-contrib-coffee'
grunt.loadNpmTasks 'grunt-contrib-less'
grunt.registerTask 'default', ['coffee', 'less'];
return
cwd 设置基目录,flatten: false 使 Grunt 尊重子目录结构,[src: "**/*.coffee"] 使其在 cwd 的每个子目录中查找每个 .coffee 文件。输出到dest 文件夹。