この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
typescript:moduleのimport [2020/09/22 01:08] ips |
typescript:moduleのimport [2020/09/23 12:09] (現在) ips [6.本番用のビルと] |
||
---|---|---|---|
ライン 2: | ライン 2: | ||
関数などを別ファイルに分割したい場合。 | 関数などを別ファイルに分割したい場合。 | ||
+ | 復数に分割したファイルをそのまま<html><script src="xxx.js"></script></html>としても取り込んでもjavascriptは実行できない。 | ||
+ | |||
+ | * 記号なしリスト.tsファイルを1つのファイルにまとめて.jsにコンパイルする。 | ||
+ | * webpackやgulpといった別ツールを使って、コンパイルしたjsファイルのモジュールのバインドをする。 | ||
+ | といったことが考えられるが、一番簡単なのは<wrap hi>parcel</wrap>を使用することのようだ。 | ||
+ | |||
+ | [[https://docs.solab.jp/typescript/module/external/|外部モジュール]] | ||
+ | [[https://teppeis.hatenablog.com/entry/2014/05/typescript-external-modules|TypeScriptで複数ファイル構成する2つの方法]] | ||
+ | |||
+ | ====== parcelの使い方 ====== | ||
+ | |||
+ | [[https://ics.media/entry/190325/|TypeScriptのビルドにオススメ!Parcel入門]] | ||
+ | |||
+ | ====== 1.npmの初期化 ====== | ||
+ | <code> | ||
+ | // プロジェクトのディレクトリに移動して | ||
+ | >npm init | ||
+ | </code> | ||
+ | |||
+ | ====== 2.parcelのインポート ====== | ||
+ | <code> | ||
+ | >npm install --save-dev parcel | ||
+ | </code> | ||
+ | |||
+ | ====== 3.ファイルを分けてexportとimport ====== | ||
+ | |||
+ | <code javascript func.ts> | ||
+ | export default function getAsterString(target:string):string{ | ||
+ | return "*" + target + "*" | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | <code javascript main.ts> | ||
+ | import getAsterString from "./func" | ||
+ | ... | ||
+ | |||
+ | console.log(getAsterString("aaa")) | ||
+ | </code> | ||
+ | |||
+ | ====== 4.htmlでインポート ====== | ||
+ | <code html> | ||
+ | <body> | ||
+ | ... | ||
+ | <script src="main.ts"></script> //.tsにすること! | ||
+ | </body> | ||
+ | |||
+ | </code> | ||
+ | |||
+ | ====== 5.ローカルサーバーの起動 ====== | ||
+ | <code> | ||
+ | > npx parcel index.html --open | ||
+ | </code> | ||
+ | |||
+ | <WRAP center round tip 90%> | ||
+ | * ファイルの編集と同時にリロードされる(ホットリロードに対応!) | ||
+ | * TypeScriptのモジュールは自動でインストール! | ||
+ | * TypeScriptのソースマップが有効! | ||
+ | * tsconfig.jsonのカスタマイズ可能! | ||
+ | </WRAP> | ||
+ | |||
+ | ====== 6.本番用のビルと ====== | ||
+ | <code> | ||
+ | npx parcel build index.html | ||
+ | </code> | ||
+ | |||
+ | <WRAP center round important 90%> | ||
+ | htmlファイルのjs参照が | ||
+ | <script src="main.ts"></script> | ||
+ | のようにトップディレクトリにあると、ビルド後は | ||
+ | <script src="/main.2799c73f.js">となってしまい、jsが参照できない。 | ||
+ | |||
+ | サブディレクトリを作成してtsの作成やコンパイルをするか、コンパイル後のhtmlの参照を | ||
+ | <script src="./main.2799c73f.js"> | ||
+ | <script src="main.2799c73f.js"> | ||
+ | と変更する必要がある。 | ||
+ | </WRAP> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ====== ~~~以下の手順ではモジュールのバインドができていない(参考:後日修正予定)~~~ ====== | ||
===== 1.moduleを分ける ===== | ===== 1.moduleを分ける ===== |