私はESモジュールについて昨日投稿した投稿を考えています
I needed a quick way import a simple module get-urls into my project. The module is well tested and it does what I needed … ignore the fact that it’s pretty easy to implement in a couple of lines of JavaScript. The problem I had is that my project is built in ES6, uses modules and I didn’t want to have to bundle up using CommonJS (require).
I couldn’t find a lot of guidance on what to do here, so I went to experiement and this solution is the solution I came across:
- Create a file that imports the npm module I needed. module.exports = require(‘get-urls’); This module will be what’s converted to ES6 style.
- Create a rollup config that
- Imports the node globals, and builtins.
- Resolves all npm modules required for my usage of this module.
- Pass the results through the commonjs plugin so that it’s now in JavaScript module format.
- Compress the output, because it’s huge :
- Include the bundled file in your project and rejoice.
私が元の記事で試してみたかったことの一つだが、私が取り上げることにしたのは、ノードのエコシステムには膨大な量のコードがあり、それは実際にはノードそのものに固有のコードではないが、 Common JSや他の非常に特殊なNode API(バッファ、古いURLなど)を介してNodeを起動すると、ESモジュールをユビキタスにするために必要な変更が必要になる可能性がありますさまざまなプラットフォーム(Web /サーバー)でコードをきれいに共有できるようにするために、多くの変換ツールとバンドルを使用する必要があるエコシステムが変わります。
私たちはどこにいるのですか、Web上での話がありませんでした.Nodeが導入したプリミティブのヒープがなかったので、実際には多くのプラットフォームの要件が考慮されるようになりました。状況の批判よりも多くの肯定的な評価。
また、ノードとウェブの両方で標準的なファイル拡張子として ‘.mjs’を使用する動きもあります。しかし、私はこれを完全に快適に感じていますが、.msjはインフラストラクチャがまだ「text / javascript」と認識しているファイルではなく、これをソートして惑星上のすべてのWebサーバーによって自動的に推測されることを楽しみにしています。私は、サービングインフラストラクチャにさらに多くの構成変更を展開する必要はありません。
楽しい時間がたくさんあります。私は1つはWebにもっと多くの機能をもたらすことを楽しみにしています。