2015-11-07 15 views
10

Mam pomyślnie uruchomiony program ReactJS.Net, w tym użycie składni ES6.ReactJS.net - Jak używać modułów ES6

Używam domyślnego potoku transformacji Jsx, który używa Babel. Patrząc na źródło w przeglądarce widzę, że kod ES6 został przekonwertowany na ES5 przez ReactJS.Net

Nie mogłem uruchomić modułów.

Przeglądarka daje mi 2 błędy:

Uncaught ReferenceError: exports is not defined 
Uncaught ReferenceError: require is not defined 

Jak używać ES6 modułów?

Najprostszy przykład:

Lib.js

export function square(x) { 
    return x * x; 
} 

UserOfLib.js

import { square } from 'Lib'; 
console.log(square(11)); 

pobiera przekształcone do tego (patrząc na źródło przeglądarki):

Lib:

// @hash v3-AD133907ABEC5D32B3768A3AF2301FC9 
// Automatically generated by ReactJS.NET. Do not edit, your changes will be overridden. 
// Version: 2.0.1 (build 5e9476a) 
// Generated at: 08-Nov-15 6:40:26 AM 
/////////////////////////////////////////////////////////////////////////////// 
Object.defineProperty(exports, "__esModule", { 
    value: true 
}); 
exports.square = square; 

function square(x) { 
    return x * x; 
} 

UserOfLib:

// @hash v3-812C209AFED25C2B4507E5769B0D899B 
// Automatically generated by ReactJS.NET. Do not edit, your changes will be overridden. 
// Version: 2.0.1 (build 5e9476a) 
// Generated at: 08-Nov-15 6:40:26 AM 
/////////////////////////////////////////////////////////////////////////////// 
var _Lib = require('Lib'); 

console.log((0, _Lib.square)(11)); // 121 

Odpowiedz

9

Obecnie ReactJS.Net nie obsługuje moduły. Jeśli chcesz korzystać z modułów, musisz użyć modułowego modułu pakującego, takiego jak Webpack lub Browserify, aby skompilować moduły aż do wanilii JavaScript. Wdrożenie obsługi modułów w samym ReactJS.NET to praca, która nie jest banalna, ponieważ musiałaby radzić sobie z zależnościami i ładować moduły w odpowiedniej kolejności, a dobre, dobrze przetestowane rozwiązania, takie jak Webpack już istnieją.

+1

Czy te dwie mogą być używane w połączeniu z przetwarzaniem JSX? –

Powiązane problemy