2014-11-28 4 views
1

오늘은 실제 목표가 아닌 일부 ES6 모듈을 가지고 놀고 싶습니다. 내 문제는,하지만 내 코드를 실행할 수없는 것입니다. 내가 처음 내 requirejs main.js 파일에서 traceur-runtime.js을로드하려고Traceur 컴파일러로 ES6 작성하기

우선, 난 requireJS를 사용하고, 그래서이 내 파일이

<script src="/assets/bower_components/traceur-runtime/traceur-runtime.js"></script> 
<script data-main="/assets/js/main" src="/assets/bower_components/requirejs/require.js"></script> 
<script>require(['/assets/js/compiled/User.js']);</script> 
<script>require(['/assets/js/compiled/App.js']);</script> 

같이 포함하지만 나에게에 대한 오류를주고 있었다 : 내가 설명 할 수 '경로'모듈이로드되지 않습니다. 그래서 일하는 일을 위해서 여기에 착륙했습니다. 이것은 오류없이 모든 파일을 올바른 순서로로드합니다.

내 es6 파일을 컴파일하는 데 grunt-traceur을 사용하고 있습니다. 설정은 여기에 있습니다.

traceur: { 
     options: { 
      //experimental: true, 
      modules: 'amd' 
      //arrayComprehension: true, 
      //generatorComprehension: true 
     }, 
     custom: { 
      files: [{ 
       expand: true, 
       cwd: './app/assets/js/modules/', 
       src: ['*.js'], 
       dest: './app/assets/js/compiled/' 
      }] 
     } 
    } 

여기가 & ES5

ES6

// User.js 
export default function User(age) { 
    this.age = age; 
}; 

// App.js 
import User from 'user'; 

var shan = new User(35); 

console.log(shan); 
document.body.innerHTML = shan.age; 

Traceur이

// User.js 
define("app/assets/js/compiled/User", [], function() { 
    "use strict"; 
    var __moduleName = "app/assets/js/compiled/User"; 
    function require(path) { 
    return $traceurRuntime.require("app/assets/js/compiled/User", path); 
    } 
    function User(age) { 
    this.age = age; 
    } 
    var $__default = User; 
    ; 
    return { 
    get default() { 
     return $__default; 
    }, 
    __esModule: true 
    }; 
}); 


// App.js 
define("app/assets/js/compiled/App", ['user'], function($__0) { 
    "use strict"; 
    var __moduleName = "app/assets/js/compiled/App"; 
    function require(path) { 
    return $traceurRuntime.require("app/assets/js/compiled/App", path); 
    } 
    if (!$__0 || !$__0.__esModule) 
    $__0 = {default: $__0}; 
    var User = $__0.default; 
    var shan = new User(35); 
    console.log(shan); 
    document.body.innerHTML = shan.age; 
    return {}; 
}); 

당신이 볼 수 그래서, 난 그냥 콘솔 할

을 컴파일 ES6에, 내 모듈입니다. 어떤 종류의 의견을보기 위해 뭔가를 기록하지만 아무 것도 나오지 않습니다. 근본적으로 잘못 했나요? 기본적으로 나는 User.js과 같은 모듈을 작성하고 App.js로 가져 와서 그 모듈과 함께 작업하려고합니다.

아무도 나에게 제공 할 수있는 정보는 크게 감사드립니다!

답변

0

나는 그 모듈에 대한 호출이 필요하다고 생각한다.

관련 문제