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

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

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

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

TypeScript

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

Q&A

解決済

1回答

1907閲覧

Angularプロジェクトのpackage.jsonの書き方について

dev3310

総合スコア24

Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

TypeScript

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

0グッド

0クリップ

投稿2020/02/20 04:17

●バージョン情報
Angular CLI: 9.0.2
Angular: 9.0.1
Node: 12.15.0
OS: linux x64

①Angularプロジェクトのビルド時にdistフォルダの中を一旦消して、完全に前のビルド結果がなくなるようにしてから新しいビルド結果を出力したいです。

package.jsonのscriptsに
"build": "rimraf dist",
と記述すればいいことは分かったのですが、
デフォルトだとココは
"build": "ng build",
になっています。

この【ng build】を消してしまったら、buildできないのかと思ったのですが、
消して【rimraf dist】のみにしてもビルドできました。
ここに元々書いてあるng buildとは何なのでしょうか。

②また、調べ物をしている最中、package.jsonのscriptsに
"build": "rimraf dist && tsc -p ./tsconfig.json",
と書いている人がいました。

特にpackage.jsonをいじらなくてもng buildすればdistの中にjsファイルができていたので、
tsc -p tsconfig.json
はここに書いていなくてもビルド時にデフォルトで行われていると思っていたのですが、私の認識が間違っているのでしょうか。

ご回答よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

ng buildコマンドは、Angular CLIでAngularプロジェクトをビルドするときに使用するコマンドで、内部的にはAngular独自のテンプレートエンジンと、webpackが使われています。
一方、tscコマンドは、Typescriptが提供する純粋なTS→JS変換用のコンパイラを実行するものです。

①Angularプロジェクトのビルド時にdistフォルダの中を一旦消して、完全に前のビルド結果がなくなるようにしてから新しいビルド結果を出力したいです。

この場合、

"build": "rimraf dist && ng build", // あるいは "prebuild": "rimraf dist", "build": "ng build",

でOKです。

②また、調べ物をしている最中、package.jsonのscriptsに

"build": "rimraf dist && tsc -p ./tsconfig.json",
と書いている人がいました。

tscコンパイラは、Angularプロジェクトのテンプレートを解釈できないため、tscでビルドしたものをサーバーにアップロードしても、正常には動作しないはずです。AngularJSと呼ばれていた時代のやり方だったのではないかと推察します。

投稿2020/02/28 01:45

編集2020/02/28 01:47
kaito3desuyo

総合スコア143

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

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

dev3310

2020/03/09 09:34

ご回答ありがとうございます。 "build": "rimraf dist && ng build", // あるいは "prebuild": "rimraf dist", "build": "ng build", ということは、【ng build】コマンドの中にdistの中身を一旦消す処理が含まれているということでしょうか。
kaito3desuyo

2020/03/09 09:43

一応含まれてはいます。 参考としてご提示したnpm scriptは、念の為手動でdistフォルダを消したい、という意図のものです。なので普通はng buildのみでいいはずです。
dev3310

2020/03/10 00:31

ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問