Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ES Module の書き方 (モジュール以前のブラウザコードから ES Module への移行方法) を説明する #95

Open
dynamis opened this issue Dec 10, 2020 · 7 comments
Assignees
Labels
documentation Improvements or additions to documentation

Comments

@dynamis
Copy link
Contributor

dynamis commented Dec 10, 2020

現在本リポジトリのドライバは原則として mjs ベースで開発、js (UMD) を自動生成というか達になっているが、推奨モジュール構成 として言及しているだけで実際にどうすれば良いのかという説明が無い。

一般の npm モジュールなどのリポジトリとしてはそれでいいのだけが、既存の形式から切り替えるに際して、今後はこのように開発手順を変更してください・このように書いてくださいという ESM への以降に関する説明・合意が不十分だった。

故に、推奨構成のモジュールの書き方、旧来の <scrpt src=xxx.js> から <script src=xxx.mjs type=module> に変える時の手順について丁寧に書いた案内ドキュメントを追加したい。

@dynamis dynamis added the documentation Improvements or additions to documentation label Dec 10, 2020
@dynamis
Copy link
Contributor Author

dynamis commented Dec 10, 2020

想定内容:

  • js は mjs から自動生成する旨の説明
  • js/mjs それぞれの読み込み方を説明
  • 既存 js ドライバの mjs 化の手順説明
    • mjs にして export を追加
    • テストコードの html,main.js に script タグと import の変更
  • リンク(リファレンス)

@satakagi
Copy link
Contributor

satakagi commented Dec 10, 2020

#94 (comment)
にコメントしました。 こっちにコメントしたほうが良かったかもですね。

ESMやるなら利用者向けのExamples(RPi, TY51822r3, micro:bit, node.js)も全部ESM化するのとセット というのが今のところ私の意見です。

@dynamis
Copy link
Contributor Author

dynamis commented Dec 10, 2020

方針の議論なので #94 の方で良いです。

移行プランにかかわらず必要だろう、esm の書き方の説明ドキュメントを書く部分だけ (他の議論と一緒流れないよう) 分離しただけなので。

@kou029w
Copy link
Collaborator

kou029w commented Dec 12, 2020

パッケージを作るための手順を説明したパッケージを作りました https://www.npmjs.com/package/@chirimen/hello-world

@satakagi
Copy link
Contributor

satakagi commented Dec 19, 2020

yarnというのをnpmでinstallしてyarn && yarn build
してもERRORが出て止まります。
yarnの役割を理解していないのでトラブルシュートできません。

chirimen-oh/chirimen-micro-bit#25 (comment)
ではyarnを使わずに単にnpm publishだけで済んでおり、yarnというものの必要性がわかりません。yarnなどを使わない、もっと簡単なリリースの手順にしていただけないでしょうか?

ちなみに今ccs811をnpm publishしてみました。
https://www.npmjs.com/package/@chirimen/ccs811

今これでpublishしたドライバをRPi3やmicrobitで使ってみましたが特に問題はありませんでした。(他の問題が見つかりましたが・・・#98)

複雑でトラブルのおきやすい処理を伴うyarnの利用は廃止してください

@kou029w
Copy link
Collaborator

kou029w commented Dec 19, 2020

Yarnとはパッケージ管理のためのNpmと似た役割のアプリケーションです。
目的としては一度に複数のパッケージをモノレポの中で扱うためです。
Npm v7 より前のバージョンではworkspacesプロパティをサポートしておらずこのリポジトリを作る時に不便だったのでYarnを採用しました。
yarn buildでエラーがあるということは同様にnpm run buildでもエラーがある、ということで、それはそれとして対処したほうが良いですが、それは一旦置いておいて、Npm v7 以降であるならworkspacesをサポートしてるのでYarnをやめることは可能で、代わりにv7以降の npm コマンドを使うだけですね。

@kou029w
Copy link
Collaborator

kou029w commented Dec 19, 2020

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

3 participants