проблем с Babel


2
Въпросът ми е следния: на изпита ползваме bower, за да си инсталираме пакетите, да ама babel се инсталира през npm, грешно ли е да имаме package.json в public папката само за да си инсталираме babel, за да ползваме system.js? Доколкото виждам babel не може да се инсталира през bower ...



Отговори



5
Вариантът през bower мисля, че е този:
bower install --save https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.23/browser.js

EDIT: Което не съм сигурна дали не работи, само защото babel ми е инсталиран и глобално... Все пак посоченият вариант със сигурност е ОК за някакви други библиотеки.

от shoko (1073 точки)


0
Tова е вариантът за инсталиране през bower. Dругият е да дръпнеш директно файлът от GitHub: bower install --save https://github.com/babel/babel/blob/master/packages/babel/src/api/browser.js. При мен, с този browser.js върви зареждането на файлове с import и export.

от veselints (506 точки)


2
Първото, което съм длъжна да ти кажа е, че Дончо сподели, че използване на JS Loader няма да носи допълнителни точки... соууу... ;)

Иначе - на изпита ще получиш нещо със завършена сървърна логика, което непременно ще дойде с package.json - мисля, че не е никакъв проблем да си запазиш там депендънсито :)

от dentia (12519 точки)


3
Малко е оф топик, но бих те посъветвала и да оставиш коментар за хората, ползващи WebStorm, тъй като ако не е включен интелисенса за ECMA 6 подчертава целия файл с червен цвят, което може да е необяснимо за проверяващия, ако не е ползвал system.js.

Иначе независимо кой от горните начини за инсталация си избереш бих те посъветвала със сигурност да държиш babel и всяка друга библиотека, която ти трябва за клиентската част - в клентската част. Не само защото там си е мястото, но и защото при рефериране на babel/ system от външна директория за public може да получиш главоболие. Аз лично имах доста проблеми, с какъвто и синтаксис/хак да ги реферирам, а ако ти се случи на изпит може да те паникьоса, тъй като няма видима причина за проблем. 

Поздрави =)



12
Само този, който не е използвал system.js досега, би решил, че е добра идея утре да използва system.js :D :D :D

от antoanelenkov (1047 точки)


9

Ще използвам темата да споделя как успях да заредя депендънсито на sammy и toastr към jquery със systemjs по елегантния начин.  Това не ни го показаха на лекции и може би много хора не са го открили. Необходимо е да се добави пропърти depCache към обекта, който се подава на System.config ето така:

System.config({
transpiler: 'traceur', // or babel if you like
map: {
traceur: 'bower_components/traceur/index.js',
jquery: 'bower_components/jquery/dist/jquery.js',
sammy: 'bower_components/sammy/lib/sammy.js',
toastr: 'bower_components/toastr/toastr.js',
handlebars: 'bower_components/handlebars/handlebars.js',
underscore: 'bower_components/underscore/underscore.js',
sha1: 'bower_components/sha1/index.js',
// etc...
},
depCache: {
sammy: ['jquery'],
toastr: ['jquery']
}
});

В масива, който се подава на пропъртитата в depCache, по принцип се изброяват със запетайки всички депендънсита на въпросната библиотека и systemjs се грижи да зареди депендънситата за библиотеката преди да я извика.