- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的项目有 300 多个 CoffeeScript 文件,因此重新编译所有文件需要几秒钟的时间。我只想重新编译更改后的 CoffeeScript 文件。
这是我到目前为止最接近的,但是“frontend-src/coffeescript”文件夹结构正在从 src 目录复制到 dest 目录。
coffee: {
changed: {
expand: true,
cwd: './',
src: ['<%= grunt.regarde.changed %>'],
dest: 'public/js/',
ext: '.js'
}
},
regarde: {
coffee: {
files: 'frontend-src/coffeescript/**/*.coffee',
tasks: ['coffee:changed', 'livereload']
}
}
最佳答案
我有同样的问题。我使用 regarde:file
解决了它事件。
首先,我使用 regarde:file
监听更改的文件事件。这将为两个任务提供配置:clean:coffee
如果源位置中的文件已被删除并且 coffee:refresh
如果文件已更改/添加。
然后是regarde
task 会触发它的任务,它会启动 refresh:coffee
(不要误认为 coffee:refresh
)。此任务将检查是否为 clean:coffee
添加了配置。和/或 coffee:refresh
并在需要时运行这些任务(通过函数 grunt.task.run
)。如果也会重置标志,这会导致下一个接收到regarde:file
再次清理配置的事件。
深度讲解:
首先,regarde
配置:
// watch for changed coffeescript files
coffee: {
files: 'path/to/coffee/**/*.coffee',
tasks: ['refresh:coffee', 'livereload']
},
regarde:file
事件,我更新了
clean:coffee
和
coffee:refresh
文件列表在他们的配置中。
regarde:file
的配置事件:
grunt.event.on('regarde:file', function (status, target, filepath) {
if (resetFlag) {
// clean file list from previous cycle, so clean clean:coffee and coffee:refresh
// file lists
...
resetFlag = false;
}
if (status === 'deleted') {
if (filepath) {
// calculate filepath's destination and
// add it to clean:coffee filelist
}
} else {
if (!grunt.file.isDir(filepath)) {
// add filepath to coffee:refresh filelist
}
}
}
grunt.config()
很容易更新配置功能。在要提供的代码片段下方
coffee:refresh
和
clean:coffee
.
coffee:refresh
:
var config = grunt.config('coffee') || {};
var value = config.refresh || {};
value.files = value.files || [];
...
var cwd = path.dirname(filepath),
src = path.basename(filepath),
dest = cwd.replace('path/to/source', 'path/to/dest');
value.files.push({
expand:true,
src:src,
dest:dest,
cwd:cwd,
ext:'.js'
});
grunt.config('coffee', config);
clean:coffee
:
var cwd = path.dirname(filepath),
src = path.basename(filepath),
dest = cwd.replace('path/to/source', 'path/to/dest');
value.src.push(path.join(dest, src.replace('coffee', 'js')));
// clean only what has been removed
config = grunt.config('clean') || {};
config.coffee = value;
grunt.config('clean', config);
refresh:coffee
被触发:
grunt.registerMultiTask('refresh', 'refreshing the changed file(s)', function () {
this.requires('regarde');
var tasks = [];
var clean = grunt.config('clean');
// check if there is clean:refresh config available
if (clean && clean[this.target]) {
tasks.push('clean:' + this.target);
}
var config = grunt.config(this.target);
// check if there is coffee:refresh config available
if (config && config.refresh) {
tasks.push(this.target + ':refresh');
}
// run the tasks
grunt.task.run(tasks);
// set the resetFlag back to true
resetFlag = true;
});
关于coffeescript - 如何使用 grunt-regarde 和 grunt-contrib-coffee 来仅编译更改的 .coffee 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15076533/
我只想在我保存的单个文件上运行coffee lint和coffee compile。我的项目中有成百上千个CoffeeScript文件,而编译它们都需要太多时间。 这是我的Gruntfile: mod
我正在使用 grunt-contrib-compass 来处理我的 .SCSS 文件 compass: { dist: { options: { cssDir: 'www/st
不幸的是,grunt-contrib-watch和 grunt-contrib-connect看起来不太好。 关于 grunt-contrib-connect readme它说: Note that
我是 nodeJS 和 grunt 的新手。我在这个项目中有这个 Gruntfile,我想对我项目中的所有 html 文件进行实时重新加载,这样我就不必一直刷新浏览器来检测新的更改。不知何故,我遇到了
我已经根据这些下载并构建了open cv open cv docs . 我正在尝试编译这个 Eigenfaces demo ,我收到以下错误。 fatal error: 'opencv2/contri
我有两个目录 src 和 compiled。我想使用 Grunt Watch 确保从 src 到 compiled 的单向数据同步.作为中间步骤,我想编译 *.less 文件以及使用 ES6 语法编写
我创建了一个 lein 项目, 比使用 eclips 的 dev-dependency 更新它的 project.clj 我跑了“lein deps” 它下载了所有依赖项 但是在 my.m2/repo
我有一些在 RStudio 中完美执行的 R 代码,但是当我在 cmd 中运行它时,我收到以下错误。 Installing package into 'C:/Users/Anish/Documents
我正在尝试为上下文强盗问题 (https://medium.com/emergent-future/simple-reinforcement-learning-with-tensorflow-part
序曲: Ant-Contrib 为安装和启动提供了一个很好解释的 wiki 页面 ([ http://ant-contrib.sourceforge.net/#install][1] )。 事实上,只
当我尝试使用 Ant-contrib 的 FOR 循环时遇到以下错误: Invalid type class org.apache.tools.ant.taskdefs.optional.script
我正在使用DapperExtensions v4.0.30319,并且试图让Dapper.Contrib知道我的架构不是DBO。我提供了: public class EngineMapper : Cl
他们无论如何要直接生成缩小的 js 吗?我不想使用其他命令,例如 grunt uglify 因为源映射不会指向咖啡而是指向 js 最佳答案 我明白你对源 map 的看法,但你仍然可以在一个链中使用 u
我是整个 JVM 方面的新手,正在尝试使用 clojure。我正在尝试加载 clojure-contrib 但失败了: # in bash $ java -cp /path/to/clojure.ja
我正在使用 ant,并且在 if/then/else 任务(ant-contrib-1.0b3.jar)上遇到问题。 我正在运行一些可以使用下面的 build.xml 进行简化的东西。 我期待从 'a
我正在使用grunt-contrib-jasmine运行我的JavaScript规范。运行规范时如何将调试输出写入控制台,即如何获取 console.log("something"); 在控制台中显示
占用的问题 我运行以下命令来安装旧版本的opencv-contrib-python(4.0.0.21)。然后发生错误,无法安装此软件包。如何解决此错误? pip install opencv-cont
互联网上是否有可用的 Wicket Contrib Examples 的源代码- CD应用程序?谢谢。 最佳答案 您说您在对 Don 的回答的评论中查看了“svn”;哪个SVN?是这个吗? http:
我在 Maven 中使用 FindBugs,使用以下配置: org.codehaus.mojo findbugs-mave
我的构建脚本中有以下任务。 我从我的 Mac 机器运行这个构建脚本。它给出了以下错误。 Problem: failed to cr
我是一名优秀的程序员,十分优秀!