2

Gruntを使い始めたばかりで、Stitchを使用してクライアント側で使用するモジュールを結合したいと考えています。私は一般的に commonJS の経験があまりなく、どちらのライブラリも私にとっては初めてのことです。ご容赦ください。

これは私の Grunt ファイルからの抜粋です。

var fs     = require('fs');
var stitch = require('stitch');

module.exports = function(grunt) {

  grunt.initConfig({

    … SNIP …

    stitch: {
      dist: {
        src: ['lib'],
        dest: 'dist/<%= pkg.name %>.js'
      }
    }
  });


  grunt.registerMultiTask('stitch', 'Compile common.js modules with stitch', function() {
    var done = this.async();

    var paths = this.file.src.map(function(dir){
      return __dirname + '/' + dir;
    });

    stitch.createPackage({ paths: paths }).compile(function(error, src){
      if (error) {
        return grunt.log.writeln(error);
      }
      file.write(name, src);
      grunt.log.writeln("File '" + name + "' created.");
      done();
    });
  });

};

grunt stitchただし、実行すると、次のようになります。

ReferenceError: can't compile  /path/to/file.js
file is not defined

ただし、絶対パスは正しく、ファイルは存在します。

アドバイスをいただければ幸いです。

4

2 に答える 2

1

結合しようとしているファイルの 1 つに含まれる参照が正しくないことが判明しました。

この質問はおそらく局所化されすぎているため終了する必要がありますが、まれに誰かが同じ問題を抱えている可能性があります — <strong>すべてのrequire呼び出しをチェックして、正しいファイルを指しているかどうかを確認してください。パスは、必要なファイルではなく、ルートからの相対パスになることに注意してください。

ただし、特にこのエラーメッセージは非常にわかりにくく、基本的に役に立たない IMO です。

于 2012-11-23T10:18:04.900 に答える