2017-03-29 5 views
1

注:これは以下の続きです:Convert old JavaScript code into ES6 module .. OPの問題は解決しましたが、回答は得られませんでした。既存のレガシーライブラリをes6モジュールに変換する

すべての現代のブラウザには、ネイティブes6モジュールが含まれています(ただし、クロムを除く)。問題は、このネイティブサポートを使用して既存のライブラリをes6モジュールに変換する方法です。

(webpack、babel、system.jsなど)を独自に使用していますが、レガシーコードに依存している現在のプロジェクト用です。

古いライブラリの変換/ラッピングをサポートするワークフローツールはありますか?私は本当にページのhtmlの<script>タグを使用しないようにしたいと思います。

+4

たとえば、https://github.com/nolanlawson/cjs-to-es6を参照してください。もちろん、ES6モジュールと他のモジュールとの基本的な違いのために、ラッパーに関する手作業が必要な場合があります。私は[現代的なブラウザ](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import#Browser_compatibility)を意味します。 – estus

+0

ありがとう、これはすべてのnpmベースのプロジェクトに最適かもしれません..それはクールだ! Re:ブラウザ:http://caniuse.com/#feat=es6-module .. FFox、Safari Tech Preview、Edgeはすべて、一般的にフラグ付きのモジュールをサポートしています。私はSTPとその素晴らしい! – backspaces

+0

モジュールの仕組みのせいで、まったくではありません。 CJSモジュールは本質的に動的であり、条件付きの 'require'sはどこにでもあります。 ES6モジュールは静的です。通常、CJSのエクスポートをES6 '*' importにマップすることができますが、必ずしもそうであるとは限りません。私はすぐにいつでもChromeでそれを期待していないだろう。 ES6モジュールは非常に長いショットのように見えますが、プロダクションで使用するには数年かかることがあります。彼らは楽しいかもしれませんが、本当のプロジェクトのためにWebpackを取り除くことはお勧めできません。本当にビルドステップをスキップしたい場合は、代わりにSystemJSを検討してください。 – estus

答えて

0

私はこれらの2つの中の物語で、その後、依存関係を変換し、ES6するために私の変換を書いた:

https://medium.com/@backspaces/es6-modules-part-1-migration-strategy-a48de0b7f112 https://medium.com/@backspaces/es6-modules-part-2-libs-wrap-em-up-8715e116d690

秒1は、この質問に答えます。しかし、ストーリーへの応答の1つは、それぞれのレガシー依存のロールアップを使用して、そのモジュールを作成することを示唆しています。私たちにとってはよりよい解決策になるかもしれません。

関連する問題