2017-08-15 16 views
0

gruntロールアッププラグインgrunt-rollupを使用して、2つのes6ファイルをノードから最終的にブラウザから実行できるJavascriptにコンパイルしようとしています。現在コンパイルされていますが、ロールアップは私のクラス名の1つから未定義の変数を作成しているようです。ここに私の現在の設定があります。ロールアップ定義されていない変数を作成

インポートES6ファイル(SRC/base.js):

class Base{ 

    constructor() { 
    return this; 
    } 
} 

export default Test; 

ロールアップエントリポイントES6ファイル(SRC/test.js):

import Base from "./base"; 

class Test extends Base{ 

    constructor() { 
    super(); 
    return this; 
    } 
} 

export default Test; 

Gruntfile.js

module.exports = function(grunt) { 

    var babel = require('rollup-plugin-babel'); 
    var resolve = require('rollup-plugin-node-resolve'); 

    // Project configuration. 
    grunt.initConfig({ 
    pkg: grunt.file.readJSON('package.json'), 

    rollup: { 
     options: { 
     sourceMap: true, 
     format: 'cjs', 
     plugins: function() { 
      return [ 
      resolve({ 
       // pass custom options to the resolve plugin 
       customResolveOptions: { 
       moduleDirectory: 'node_modules' 
       } 
      }), 
      babel({ 
       exclude: './node_modules/**', 
       presets: ['es2015-rollup'] 
      }), 
      ]; 
     }, 
     }, 
     main: { 
     dest: 'dest/bundle.js', 
     src: 'src/test.js' 
     } 
    }, 

    uglify: { 
     main: { 
     options: { 
      sourceMap: true, 
      sourceMapName: 'dest/bundle.min.js.map' 
     }, 
     files: { 
      'dest/bundle.min.js': ['dest/bundle.js'] 
     } 
     } 
    } 
    }); 

    grunt.loadNpmTasks('grunt-rollup'); 
    grunt.loadNpmTasks('grunt-contrib-uglify'); 

    // Default task(s). 
    grunt.registerTask('default', ['rollup', 'uglify']); 

}; 

出力ファイル(dest/bundle.js)

'use strict'; 

var classCallCheck = function (instance, Constructor) { 
    if (!(instance instanceof Constructor)) { 
    throw new TypeError("Cannot call a class as a function"); 
    } 
}; 



var inherits = function (subClass, superClass) { 
    if (typeof superClass !== "function" && superClass !== null) { 
    throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); 
    } 

    subClass.prototype = Object.create(superClass && superClass.prototype, { 
    constructor: { 
     value: subClass, 
     enumerable: false, 
     writable: true, 
     configurable: true 
    } 
    }); 
    if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; 
}; 



var possibleConstructorReturn = function (self, call) { 
    if (!self) { 
    throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); 
    } 

    return call && (typeof call === "object" || typeof call === "function") ? call : self; 
}; 

var Test$1 = function (_Base) { 
    inherits(Test$$1, _Base); 

    function Test$$1() { 
    var _ret; 

    classCallCheck(this, Test$$1); 

    var _this = possibleConstructorReturn(this, (Test$$1.__proto__ || Object.getPrototypeOf(Test$$1)).call(this)); 

    return _ret = _this, possibleConstructorReturn(_this, _ret); 
    } 

    return Test$$1; 
}(Test); 

module.exports = Test$1; 

//# sourceMappingURL=bundle.js.map 

端末出力

実行後の出力node dest/bundle.js

/Users/christianjuth/Desktop/mb-problems/dest/bundle.js:67 
}(Test); 
^

ReferenceError: Test is not defined 
    at Object.<anonymous> (/Users/christianjuth/Desktop/mb-problems/dest/bundle.js:67:3) 
    at Module._compile (module.js:569:30) 
    at Object.Module._extensions..js (module.js:580:10) 
    at Module.load (module.js:503:32) 
    at tryModuleLoad (module.js:466:12) 
    at Function.Module._load (module.js:458:3) 
    at Function.Module.runMain (module.js:605:10) 
    at startup (bootstrap_node.js:158:16) 
    at bootstrap_node.js:575:3 

問題は}(Test);は、未定義の変数を探しているbundle.jsの一番最後にあるように思われます。限り、私はこれは私のコードのバグではないことを伝えることができます。これは、ロールアップがどのようにES6をコンパイルしているかの問題と思われます。

答えて

1

コードに未定義の変数があるためです。

class Base{ 

    constructor() { 
    return this; 
    } 
} 

export default Test; 

...あなたはTestを定義している:base.jsにおける第二を見てみましょうか? export default Baseを意味しましたか?

+0

おっと。どのように私はこれを逃したのか分からない。ありがとう。 –

関連する問題