0

我有一些 const 值,它们在整个应用程序中以及用于静态代码生成的翡翠中使用。

我正在定义文件(const.js)中的数据,如下所示。

my.const = (function () {
    return {};
}());

my.const.testType = Object.freeze({
    main: {key: 1, value: "Main"}
});

我将此文件包含在脚本标记中,并且我的应用程序可以访问这些变量。

但是,我没有找到一种方法来读取这个文件,并my.const在jade中访问数据对象。为此,我必须创建一个 json 文件并将 grunt 配置为

jade: {
            dist: {
                options: {
                    pretty: true,
                    data: function(dest, src) {
                        console.log(dest, src);
                        return grunt.file.readJSON('app/const.json');
                    }
                },
                files: [...

我使用grunt-contrib-jade插件。

我不能使用 const.js,因为它需要是一个有效的 json 文件(api)。因此,我必须保留和维护 2 个具有相同数据的文件(js 和 json)。我怎么能

  1. 用 grunt 读取 js 文件 (const.js) 并访问数据 (my.const) 或
  2. 静态包含来自 json 文件的数据,以便下面的脚本可以访问数据。简单地包含 json 文件就会产生错误(Uncaught SyntaxError: Unexpected token :)

还是有更好的方法(任何生成 js 文件的 grunt 插件,...)。我想不出任何。

谢谢。

4

1 回答 1

1

假设您使用的是 node js,在您的const.js文件中,在底部添加:

.
.
if(module && module.exports) {
    module.exports = m;
}

在 grunt 文件的顶部,需要该const.js文件:

var m = require('../path/to/const.js');

然后,在您的 grunt 配置数据函数中:

                data: function(dest, src) {
                    console.log(dest, src);
                    return m;
                }
于 2013-07-30T20:46:36.373 回答