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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

910閲覧

typeScriptでwebアプリケーションを作る方法

foxtail

総合スコア1

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/11/01 09:37

前提・実現したいこと

はじめまして。
typeScriptを用いてWebアプリケーションを作成しようと考えているのですが
ビルドされたjsファイルをfirst.htmlで呼び出そうとすると以下のようなエラーが出てしまいます。
解決方法を調べたのですが、色々方法があり、何が正しいのかわからなくなってしまいました。

お手数ですが、typeScriptを用いてWebアプリケーションを作成する場合のスタンダードな手段と
どの様に以下の問題を解決するべきなのかをご教授いただけませんでしょうか?

発生している問題・エラーメッセージ

define.js:2 Uncaught ReferenceError: exports is not defined at define.js:2 common.js:2 Uncaught ReferenceError: exports is not defined at common.js:2 first.js:2 Uncaught ReferenceError: exports is not defined at first.js:2

フォルダ構成

node_modules pages ∟ first.html ∟ second.html scripts ∟ js ∟ common.js ∟ define.js ∟ first.js ∟ ts ∟ common.ts ∟ define.ts ∟ first.ts index.html package-lock.json package.json tsconfig.json

該当のソースコード

first.html

html

1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <title>first</title> 7</head> 8<body> 9 <script src="../scripts/js/define.js"></script> 10 <script src="../scripts/js/common.js"></script> 11 <script src="../scripts/js/first.js"></script> 12</body> 13</html>

define.ts

TypeScript

1export class Define { 2 readonly G_DEBUG: boolean = true; 3}
define.js

js

1"use strict"; 2Object.defineProperty(exports, "__esModule", { value: true }); 3exports.Define = void 0; 4var Define = /** @class */ (function () { 5 function Define() { 6 this.G_DEBUG = true; 7 } 8 return Define; 9}()); 10exports.Define = Define;

common.ts

TypeScript

1import { Define } from "../ts/define"; 2 3export class Common { 4 constructor( 5 private Define: Define 6 ) {} 7 8 show(): boolean { return this.Define.G_DEBUG; } 9}
common.js

js

1"use strict"; 2Object.defineProperty(exports, "__esModule", { value: true }); 3exports.Common = void 0; 4var Common = /** @class */ (function () { 5 function Common(Define) { 6 this.Define = Define; 7 } 8 Common.prototype.show = function () { return this.Define.G_DEBUG; }; 9 return Common; 10}()); 11exports.Common = Common;

first.ts

TypeScript

1import { Define } from "./define"; 2import { Common } from "./common"; 3 4window.onload = (): void => { 5 const DEFINE: Define = new Define(); 6 const COMMON: Common = new Common(DEFINE); 7 8 alert(COMMON.show()); 9}
first.js

js

1"use strict"; 2Object.defineProperty(exports, "__esModule", { value: true }); 3var define_1 = require("./define"); 4var common_1 = require("./common"); 5window.onload = function () { 6 var DEFINE = new define_1.Define(); 7 var COMMON = new common_1.Common(DEFINE); 8 alert(COMMON.show()); 9};

補足情報(FW/ツールのバージョンなど)

npm > 6.14.8
typeScript > 4.0.5

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

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

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

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

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

guest

回答1

0

ベストアンサー

TypeScriptは、ブラウザで直接処理できませんコンパイル環境を整える必要があります。

1ファイル単位でTypeScriptをコンパイルすると、設定にもよりますが、今回の場合はCommonJSという仕様に沿ったファイルとして出力されていますが、このCommonJSもブラウザで直接処理できるものではありません。

Webpack、Rollup、Parcelなどのツールを使って、CommonJSによるファイル同士の関係性を解釈させてしまって1本のファイルにまとめるのがいちばんやりやすいです。

投稿2020/11/01 09:41

編集2020/11/01 09:44
maisumakun

総合スコア145183

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

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

foxtail

2020/11/03 01:16

返信が遅くなってしまい申し訳ありません。 早速のご回答ありがとうございます! やはり直接処理できなかったんですね。。。 Webpackの使い方を調べて試してみます! ありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問