在Gruntfile内部或从Gruntfile加载和解析.ini文件

时间:2015-07-07 09:43:17

标签: javascript gruntjs jasmine ini

  • Gruntfile.js位于project root/Gruntfile.js
  • asset_compress.ini位于project root/app/Config/asset_compress.ini
  • 测试是使用Jasmine编写的,规范都位于project root/tests/**/*

以下是一个精简的Gruntfile。如果您需要更多,请随时询问:

module.exports = function(grunt) {
    'use strict';

    grunt.initConfig({
        jasmine: {
            test: {
                src: [
                    'node_modules/jasmine-expect/dist/jasmine-matchers.js',
                    'app/webroot/js/libraries/jquery-2.0.js',
                    'app/webroot/js/api/ClassUtility.js',
                    'app/webroot/js/api/**/*.js'
                ],
                options: {
                    log: true,
                    specs: [
                        'tests/app/webroot/js/api/ClassUtility.spec.js',
                        'tests/**/*.spec.js'
                    ]
                }
            }
        }
    });
};

ClassUtility(及其规范)需要在API的任何其他部分之前加载,因为它包含所有其他“类”所依赖的所有内容。这就是为什么它被特别声明为高于所有其他api类的原因。

但是,我有许多(!)依赖项和我需要的许多其他文件,它们都存在于(相当大)asset_compress.ini中。理想情况下,我希望将该单个ini文件保留为唯一列表,并从该列表中读取我的Gruntfile以了解它应加载的源文件。

TLDR: 如何使用我的ini文件的内容配置我的Gruntfile?

2 个答案:

答案 0 :(得分:0)

正如bfred.it建议的那样,有很多节点包可以解析.ini文件。但是,它们都没有像我希望的那样工作,所以我决定创建自己的。

可以在此处找到您可能需要的源代码,文档,说明和其他任何内容:https://bitbucket.org/skelware/node-file-parser/

随意在问题跟踪器上请求功能!

答案 1 :(得分:0)

在节点中加载和解析ini文件的简便方法: 首先在命令行上安装:

npm install parse-ini

然后在代码中:

var iniParser = require('parse-ini');
var parsedIni = iniParser.parse('yourfile.ini');
// job done, you can use results in parsedIni:
console.log(parsedIni.sectionName.variableName);
console.log(parsedIni.variableWithoutSectionName);