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로 가져 와서 그 모듈과 함께 작업하려고합니다.
아무도 나에게 제공 할 수있는 정보는 크게 감사드립니다!