2016-08-26 14 views
5

Próbuję użyć babel do kompilacji pliku zawierającego obietnice es6. Zainstalowałem babel-cli, babel-preset-es2015, babel-plugin-es6-promise.Jak korzystać z obietnic es6 dzisiaj na interfejsie?

Moja .babelrc config to:

{ 
    "presets": ["es2015"], 
    "plugins": ["es6-promise"] 
} 

mam skompilowany plik js z require() w środku, ale nie chcę używać wymagają w ogóle.

Czy jest jakaś możliwość skorzystania z obietnic es6 dzisiaj na stronie frontendowej bez wymagania js?

Proszę podać link ES6 próbkę realizacji obietnic babel (lub nawet z Babel + wymagać bo nie mogę wymagać js pracy również)

PS: Nie wa używać WebPACK.

+0

Jeśli chcesz tylko użyć "es6-obietnica", a nie składni es6, to możesz użyć jest polyfill https://github.com/stefanpenner/es6-promise, tak jak każda inna obiecująca biblioteka. Ale jeśli chcesz alternatywy dla 'webpack', możesz spróbować' rollup' lub 'browserify'. – kabirbaidhya

Odpowiedz

-4

Webpack + babel - z przodu. node.js 5+ wersja/babel rejestracji dla node.js

1

Czy istnieje możliwość korzystania ES6 przyrzeczenia dzisiaj na stronie frontend bez wymagać js?

W najnowszej wersji Chrome/Firefox/Safari/Edge, Obietnice to already supported natively.

Jeśli szukasz również starszej wersji przeglądarki, w prosty sposób bez Babel, potrzebujesz lub cokolwiek, wystarczy użyć biblioteki polyfill.

Oto biblioteki, które mają dokładnie zachowanie określonego przez spec:

A oto niektóre z dodatkowych niestandardowych zachowań:

Oczywiście, powyższe to tylko niektóre bardziej popularne, ale istnieje wiele innych można znaleźć poprzez badanie.

Jeśli chcesz używać innych funkcji ES6, a zwłaszcza starszych przeglądarek, nadal potrzebujesz babel.


Proszę podać link ES6 przyrzeczenia próbkę wdrażania z Babel (lub nawet z babel + wymagać bo nie mogę wymagać js pracy również)

babel website's setup opisano sposób używaj go w zasadzie w każdym otoczeniu, które możesz wymyślić.Jeśli webpack jest zbyt ciężki dla swoich potrzeb, polecam using gulp i oto thorough guide on how

1

sam Babel jest tylko transpiler, to przekłada się z ES6 do ES5, i nic więcej. Od ES6 zawiera moduły, które mogą być stosowane w odniesieniu do przywozu podoba:

import Awesome from './Awesome' 

Babel będzie transpile że w require oświadczenia dla ciebie, ale nie dbają o rzeczywistej konieczności. Dlatego potrzebne są wszelkie ramy implementujące wymagany styl AMD, takie jak Browserify czy coś w tym stylu. Webpack również sobie z tym poradzi, więc jeśli użyjesz Webpack + Babel, cały wymagany kod będzie dostępny i nie ma nic, co mogłoby przeszkadzać w korzystaniu z modułów ES6 (i obietnic również) za pośrednictwem nowego oświadczenia import.

Używam webpack.config.js takiego:

module.exports = { 
    entry: ['babel-polyfill', './js/main.js'], 
    output: { 
     path: './bin/js', 
     filename: 'main.js', 
    }, 

    devtool: 'source-map', 

    module: { 
     loaders: [{ 
      test: /\.js$/, 
      exclude: /node_modules/, 
      loader: 'babel-loader' 
    }] 
    } 
} 

i .babelrc tak:

{ 
    "presets": [ "es2015", "stage-3" ], 
    "plugins": [ 
     "external-helpers", 
     "transform-async-to-generator", 
     "transform-runtime" 
    ] 
} 

Zanim zacząłem używać WebPACK użyłem Gulp i browserify, najpierw skompilować i ponad w pakiecie, ale konfiguracja za pomocą pakietu internetowego jest znacznie prostsza, więc postanowiłem użyć tego ...