Top Banner
JSPM ИЛИ КАК ОБОЙТИСЬ БЕЗ WEBPACK’ А СЕРГЕЙ СЕЛЕЦКИЙ @SSELETSKYY
33

JS Lab2017_Сергей Селецкий_System.js и jspm

Apr 11, 2017

Download

Technology

GeeksLab Odessa
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: JS Lab2017_Сергей Селецкий_System.js и jspm

JSPM ИЛИ КАК ОБОЙТИСЬ БЕЗ WEBPACK’А

СЕРГЕЙ СЕЛЕЦКИЙ

@SSELETSKYY

Page 2: JS Lab2017_Сергей Селецкий_System.js и jspm

ПРОВЕРКА МИКРОФОНА

Page 3: JS Lab2017_Сергей Селецкий_System.js и jspm

О ЧЕМ МЫ ПОГОВОРИМ

• Кто я. Где я. И почему.

• Что такое SystemJS и jspm

• Как сконфигурировать проект

• Пишем только на ES6

• Модульная сборка против bundle-sfx

Page 4: JS Lab2017_Сергей Селецкий_System.js и jspm

Кто яFrontend (React) developer - сейчас Full stack (Ruby,JS) TL - с 2012г

Java, PHP, C++, Delphi - до 2012г

Page 5: JS Lab2017_Сергей Селецкий_System.js и jspm

Кто яRuby TL React/Redux dev

Page 6: JS Lab2017_Сергей Селецкий_System.js и jspm

Кто яRuby TL React/Redux dev

Lohika Internal Training Program

Page 7: JS Lab2017_Сергей Селецкий_System.js и jspm

Lohika Internal Training Program

Главная задача - сделать блог

Какие использовать библиотеки? it’s up to you!

Page 8: JS Lab2017_Сергей Селецкий_System.js и jspm

Lohika Internal Training Program

Главная задача - сделать блог Backend API - NodeJS Frontend Vanilla JS (ver 1) Frontend React/Redux (ver 2)

Libs: express, jade/pug, sequelize, SQL

Page 9: JS Lab2017_Сергей Селецкий_System.js и jspm

Lohika Internal Training Program

Главная задача - сделать блог Backend API - NodeJS Frontend Vanilla JS (ver 1) Frontend React/Redux (ver 2)

Libs: handlebars, lodash, text

Page 10: JS Lab2017_Сергей Селецкий_System.js и jspm

Lohika Internal Training Program

Главная задача - сделать блог Backend API - NodeJS Frontend Vanilla JS (ver 1) Frontend React/Redux (ver 2)

Libs: redux-thunk, lodash

Page 11: JS Lab2017_Сергей Селецкий_System.js и jspm

SystemJS

Page 12: JS Lab2017_Сергей Селецкий_System.js и jspm

SystemJSАСИНХРОННЫЙ ЗАГРУЗЧИК

JS МОДУЛЕЙ ЛЮБЫХ ИЗВЕСТНЫХ ФОРМАТОВ

Page 13: JS Lab2017_Сергей Селецкий_System.js и jspm

SystemJSОНО СКАЧИВАЕТ ЛЮБЫЕ ES6 ФАЙЛИКИ

И ПОДГОТАВЛИВАЕТ ИХ ДЛЯ РАБОТЫ В НЕСМЫШЛЕНОМ БРАУЗЕРЕ

Page 14: JS Lab2017_Сергей Селецкий_System.js и jspm

SystemJSESM CJS AMD GLOBAL SYSTEM

Page 15: JS Lab2017_Сергей Селецкий_System.js и jspm

SystemJSESM CJS AMD GLOBAL SYSTEM

ECMAScript Module

Page 16: JS Lab2017_Сергей Селецкий_System.js и jspm

SystemJSESM CJS AMD GLOBAL SYSTEM

ECMAScript Module CommonJS

Page 17: JS Lab2017_Сергей Селецкий_System.js и jspm

SystemJSESM CJS AMD GLOBAL SYSTEM

ECMAScript Module CommonJS Async Module Definition

Page 18: JS Lab2017_Сергей Селецкий_System.js и jspm

SystemJSESM CJS AMD GLOBAL SYSTEM

ECMAScript Module CommonJS Async Module Definition свят-свят

Page 19: JS Lab2017_Сергей Селецкий_System.js и jspm

SystemJSESM CJS AMD GLOBAL SYSTEM

ECMAScript Module CommonJS Async Module Definition свят-свят System.register(Dynamic)

Page 20: JS Lab2017_Сергей Селецкий_System.js и jspm

SystemJSESM CJS AMD GLOBAL SYSTEM

ECMAScript Module CommonJS Async Module Definition свят-свят System.register(Dynamic)

Web Assembly !

Экспериментальная поддержка в версии 0.20

Page 21: JS Lab2017_Сергей Селецкий_System.js и jspm

SystemJS

Page 22: JS Lab2017_Сергей Селецкий_System.js и jspm

SystemJSДЕПИЛЯЦИЯ ТРАНСПИЛЯЦИЯ

ПРЯМО В БРАУЗЕРЕ

Traceur Babel TypeScript

Page 23: JS Lab2017_Сергей Селецкий_System.js и jspm

Browser Development

В таком виде подгружает модули всех форматов

Page 24: JS Lab2017_Сергей Селецкий_System.js и jspm

Browser Production

В таком виде подгружает только модули предварительно подготовленные в формат System.register

Page 25: JS Lab2017_Сергей Селецкий_System.js и jspm

Browser Production

В таком виде подгружает только модули предварительно подготовленные в формат System.register

И тут без Webpack’a не обойтись! Шутка

Page 26: JS Lab2017_Сергей Селецкий_System.js и jspm

JSPMJAVASCRIPT PACKAGE MANAGER

Page 27: JS Lab2017_Сергей Селецкий_System.js и jspm

JSPMМенеджер пакетов для SystemJS

Загружает пакеты из npm и Github

Есть CLI для установки пакета по принципу `npm i`

Глобальный реестр http://jspm.io

package.json используется для регистрации пакетов

Page 28: JS Lab2017_Сергей Селецкий_System.js и jspm

JSPMbaseURL — путь к папке public относительно package.json.

jspm_packages — папка куда jspm будет устанавливать все внешние зависимости. config.js — основной файл настроек в папке baseURL. Client baseURL — URL папки public для браузера Transpiler — используемый транспайлер. (по умолчанию babel).

Page 29: JS Lab2017_Сергей Селецкий_System.js и jspm

JSPM$ npm i jspm [-g]

$ ./node_modules/.bin/jspm init

$ jspm i react

$ jspm inspect | grep react > npm:react 15.4.2

Page 30: JS Lab2017_Сергей Селецкий_System.js и jspm
Page 31: JS Lab2017_Сергей Селецкий_System.js и jspm
Page 32: JS Lab2017_Сергей Селецкий_System.js и jspm

Code Examples

Page 33: JS Lab2017_Сергей Селецкий_System.js и jspm

СПАСИБО