質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Babel

Babelは、JavaScriptの次世代仕様であるECMAScriptのコンパイラ。次世代の標準機能を用いて記述されたコードを、それらの機能に対応していないブラウザでも動作するコードに変換することができます。

CDN

CDNは、Webコンテンツをインターネット経由で配信するのに最適化されたネットワークを指します。Webサイトにある静的コンテンツをWebサイトが管理されているサーバーとは異なるサーバーにキャッシュし代わりに配信することで、負荷が分散し速度を向上する仕組みです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

1回答

596閲覧

CDN-ReactとES Modulesの衝突における対応案を求めます.

KagenoMoheji

総合スコア7

Babel

Babelは、JavaScriptの次世代仕様であるECMAScriptのコンパイラ。次世代の標準機能を用いて記述されたコードを、それらの機能に対応していないブラウザでも動作するコードに変換することができます。

CDN

CDNは、Webコンテンツをインターネット経由で配信するのに最適化されたネットワークを指します。Webサイトにある静的コンテンツをWebサイトが管理されているサーバーとは異なるサーバーにキャッシュし代わりに配信することで、負荷が分散し速度を向上する仕組みです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2019/03/05 17:09

編集2019/03/06 06:57

前提・実現したいこと

CDN-Reactの.jsxファイルにおいて外部js/jsxファイルの関数等をHTMLを用いる方法以外でインポートしたい.

環境
  • npmを導入していない.
  • HTMLファイル内にCDNでReactを導入.
導入方法の制限

下記リンクにあるような以下に述べる方法は除く.
外部jsファイルから別の外部jsファイルの関数を呼び出したい. | teratail

  • 上から順にscriptタグを並べていく方法.

HTML

1<script type="text/babel" src="export.jsx"> 2<script type="text/babel" src="import.jsx">
  • HTMLタグのID属性等を指定してで取り込む方法.
  • jQueryを用いた方法.

HTML

1<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> 2<script type="text/babel" src="import.jsx">

importJSX

1$.getScript("export.jsx");

試したこと

Browserify
  • npmによるビルドが必要だと感じ断念.
ES Modules
  • 現状コレが一番解決に近そう.
  • しかしインポート側のscriptsタグにおいてCDN-Reactのためのtype=text/babelを指定してしまっているため,type=moduleと書けずにいる.

HTML

1<!doctype html> 2<html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>React</title> 6 7 <script crossorigin src="https://unpkg.com/react@16/umd/react.development.js"></script> 8 <script crossorigin src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script> 9 <script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.34/browser.min.js"></script> 10 11 <!--ここのtype属性を「module」に変更できないためES Modulesを導入できない.--> 12 <script type="text/babel" src="jsx/import.jsx"></script> 13 </head> 14 <body> 15 <div id="root"></div> 16 </body> 17</html>

修正による追加情報

  • 使用ブラウザはChromeとしてください.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KagenoMoheji

2019/03/06 06:55

maisumakunさん React勉強中ということもあるのでChromeをメインに見ていただいて大丈夫です.
guest

回答1

0

ベストアンサー

そもそも論ですが、Babelをブラウザ内で使うのは、

Compiling in the browser has a fairly limited use case, so if you are working on a production site you should be precompiling your scripts server-side.

とBabel公式に書かれるぐらいの使い方です。どうしても不可能な理由があるのでなければ、npmを導入して、ビルド環境を構築することをおすすめします。

投稿2019/03/06 00:37

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KagenoMoheji

2019/03/06 07:01

回答ありがとうございます. ローカルでしたらnpm環境を組むことは可能ではありますが,公開しているサーバについて,レンタルサーバ(PHP)を使用しているので,サーバの内容を自由に変更できないというシチュエーションを含めて考えてのことでした. 公式に書いてあるけど何か回避策で強行できないかなと思った次第ですがやはり厳しいのでしょうか….
maisumakun

2019/03/06 07:29

「サーバの内容を自由に変更できない」状況でも、ローカルでビルドしてしまえば出来上がったものは単なるJavaScriptファイルですので、レンタルサーバに置いて使っても問題ありません。
KagenoMoheji

2019/03/06 08:41

つまり,ローカルの方でファイル分割していたものをビルドして単一JavaScriptファイルにしたものをアップロードすれば良い,ということでしょうか?
KagenoMoheji

2019/03/06 09:19 編集

なるほど分かりました. その方針でとりあえず進めていきます. ブラウザネイティブでのimport/exportができるようになると良いですね. ご助言ありがとうございました. ベストアンサーといたします.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問