0

いくつかの const 値があります。これらは、アプリケーション全体で使用されるだけでなく、静的コード生成のために jade によっても使用されます。

以下のようにファイル(const.js)にデータを定義していました。

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

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

このファイルを script タグでインクルードすると、アプリケーションから変数にアクセスできるようになります。

しかし、このファイルを読み取ってデータ オブジェクトにアクセスする方法が見つかりませんmy.const。そのためには、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) にアクセスする OR
  2. 以下のスクリプトがデータにアクセスできるように、json ファイルからのデータを静的に含めます。単純に json ファイルを含めるとエラーが発生します (Uncaught SyntaxError: Unexpected token :)

または、より良い方法がありますか(jsファイルを生成するためのうなり声のプラグインなど)。何とも思えません。

ありがとう。

4

1 に答える 1

1

ノード js を使用していると仮定すると、const.jsファイルの最後に以下を追加します。

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

grunt ファイルの先頭で、次のファイルを要求しconst.jsます。

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

そして、うなり声構成データ関数で:

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