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

Loading and parsing .ini file inside or from a Gruntfile

以下是精简的 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 的任何其他部分之前加载,因为它包含所有其他 "classes" 依赖的所有内容。这就是为什么它被明确声明高于所有其他 api 类.

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

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

正如 bfred.it 所建议的,有很多节点包可以解析 .ini 文件。但是,none 其中的工作方式符合我希望的方式,因此我决定创建自己的方式。

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

欢迎在其问题跟踪器上请求功能!

在节点中加载和解析 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);