如何用程序读取和解析gruntfile,这样我就可以修改它并再次保存
How to read and parse gruntfile programatically so I can modify it and save again?
我正在创建一个复杂的Yeoman生成器,我需要读取现有的gruntfile并对其进行修改。
解析gruntfile的任何javascript方法都是必不可少的。
任何帮助都将不胜感激。
imo我不认为通过解析js文件并生成一个新的gruntfile可以实现这一点。
您可以尝试创建模板文件,例如.jade
(或另一个模板引擎),这样,您就可以生成最终的gruntfile,您可以查看grunt.config配置对象并最终读取信息,将数据插入模板并生成最终的gruntfile.js
。
这里有一种模块化的grunt方法,您可以使用它,而无需每次添加新任务、插件或自定义时修改gruntfile.js
。
-
添加
load-grunt-tasks
npm模块作为开发依赖项:npm install load-grunt-tasks --save-dev
。这个插件允许您使用一行代码加载所有的grunt依赖项。 -
在项目中指定一个文件夹来存放所有模块化配置文件。此示例使用路径
grunt/configs/
。每个json文件的名称都应该与grunt配置中的it属性名称相匹配。例如,grunt-copy-config
的配置应该是grunt/configs/copy.json
-
复制我作为公共要点发布的gruntfile.js(堆栈溢出没有正确格式化代码)。这个grunt文件将自动加载插件,并使用项目的
package.json
文件和grunt/configs/
中的每个.json文件编译配置对象。gruntfile还将我保存的任何自定义任务加载到grunt/tasks/
中
作为另一种选择,您可以将模块化配置对象托管在JavaScript文件中,而不是json文件中(我就是这么做的)。这为我提供了在需要时动态编译配置对象的能力。如果你对此感兴趣,我也可以共享这些代码。
谢谢你们的提示,好主意,在你们的指导下,我为每个配置使用了一个json文件:
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
browserify: grunt.file.readJSON('browserify.json'),
uglify: grunt.file.readJSON('uglify.json'),
sass: grunt.file.readJSON('sass.json'),
cssmin: grunt.file.readJSON('cssmin.json'),
});
grunt.loadNpmTasks('grunt-browserify');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-sass');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.registerTask('default', ['browserify', 'sass']);
grunt.registerTask('production', ['browserify', 'sass', 'uglify', 'cssmin']);
};
现在我可以很容易地修改配置
- 有没有一个抽象层,这样我就可以集成一次,然后使用pusher、pubnub或faye
- 只要用户将鼠标悬停在jQuery中的某个元素上,就可以执行多次单击
- AngularJS在不使用变量的情况下将服务注入模块中,这样就可以缩小它
- 如何绑定到这个,这样我就可以在这个coffeescript中正确地调用React中的setState
- 如何通过知道节点的值来访问dom&&只要知道价值就可以得到手风琴的索引
- 如何用程序读取和解析gruntfile,这样我就可以修改它并再次保存
- setTimeout()是如何实现的,这样它就可以在不阻塞主线程的情况下跟踪经过的时间
- JQuery动画打断了脚本,但如果没有它,脚本就可以工作
- 如果我在其中使用alert,Javascript代码就可以工作,否则它'It’不起作用
- node.js中的自修改代码可以集群工作
- 在输入字段上使用它-can'我不能从函数中取出变量,这样我就可以使用它了
- lunr:返回搜索词的词干,这样我就可以在结果中突出显示它
- 如何只需一次调用就可以将对象数组保存到mongoose DB中
- Hapi.js文件上传我如何获取文件,这样我就可以在上面使用imageMagick命令行工具
- 我怎么能"保存“;变量客户端,这样我就可以在其他java脚本事件中使用它
- 通过小部件设置第三方cookie,这样我以后就可以识别用户了
- 如何更改当前打开的链接的文本颜色,并保持未打开链接的默认颜色?这样用户就可以知道他现在在哪个链接上
- 将值从一个html表单移动到另一个,这样一个表单就可以提交自己和另一个表单的值
- 2 pdf'It’点击一下网站就可以打开了
- 稍微修改一下就可以将数组分割成块