ホームページ ウェブフロントエンド jsチュートリアル angular.jsonファイルの説明(コード例)

angular.jsonファイルの説明(コード例)

Oct 27, 2018 pm 04:40 PM
typescript フロントエンド 足場

この記事では、angular.json ファイルについての説明 (コード例) を紹介します。必要な方は参考にしていただければ幸いです。

Angular CLI 6 バージョン以降、元の angular-cli.json は angular.json に置き換えられ、そのフィールドは大幅に変更されました。基本的な構成を理解していない場合は、直接コピーしてください。古いバージョンのコードを新しいバージョンのワークスペースに挿入すると、非常に不親切なエラーが発生します。

この変更は主に、Angular CLI によるモノリポ (1 つのスペースで複数のプロジェクトを管理) 開発モデルの導入によるものです。つまり、ng new の使用は、angular.json を通じて管理される大規模なワークスペースと同等です。 ng からのさまざまなプロジェクトまたはコンポーネント ライブラリ | 構成。

実際、このモデルの利点は非常に明白です。たとえば、企業に複数の管理プラットフォームや製品がある場合、この方法により各プロジェクトの環境を統合でき、各プロジェクト間でコンポーネントを共有することもできます。均一に維持されるため、すべてのプロジェクトが npm パッケージと typescript 設定を共有します。

モノリポジトリの構造は次のとおりです:

angular.jsonファイルの説明(コード例)

しかし実際には、ほとんどの人は依然として 1 つのワークスペースで 1 つのプロジェクトを維持しているため、これはここには含まれていません。非常に重要なので、json ファイルへの変更は新しいモデル用であることだけを述べておきたいと思います。

Angular.json の一部のフィールド

新しいワークスペースを作成すると、プロジェクトと対応する e2e プロジェクトがデフォルトでルート ディレクトリに作成されます。初期の angular.json 構造は次のとおりです (構成コードの一部は省略されています)

{
    "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
    "version": 1,
    "newProjectRoot": "projects",
    "projects": {
        "xxxx": {
            "root": "",
            "sourceRoot": "src",
            "projectType": "application",
            "prefix": "app",
            "schematics": {},
            "architect": {}
        }
    },
    "defaultProject": "xxxx"
}
ログイン後にコピー

これらは、後で簡単に参照できるように、構成プロパティの一部を順番に記録します。

$schema

は、angular.json のすべてのフィールドと制約を記述する JSON スキーマ ファイルを指します。

実際、この機能をサポートする IDE またはエディターが angular.json ファイルを作成するときに対応するプロンプトを表示する限り、これは「タイプ プロンプト」機能を持つファイルと比較できます。

version

バージョンの設定

newProjectRoot

新しいプロジェクトが配置されるパス。

ng 生成アプリケーション ライブラリを使用して新しいプロジェクトを作成すると、設定された newProjectRoot ディレクトリに自動的にアセンブルされます

projects

Place Configurationすべてのプロジェクトの。プロジェクトの 1 つはサブ項目です。たとえば、xxxx はプロジェクトの作成時に自動的に生成されます。

{
    "projects": {
        "xxxx": {
            "root": "",
            "sourceRoot": "src",
            "projectType": "application",
            "prefix": "app",
            "schematics": {},
            "architect": {}
        }
    }
}
ログイン後にコピー

単一の構成では、柔軟な構成と CLI に組み込まれたいくつかのコマンドを通じて、一部の自動化された操作を実装できます。

root

は、プロジェクトの「ルート ディレクトリ」、つまりプロジェクトの場所、またはプロジェクト ソース コードの親ディレクトリを表します。プロジェクトのルート ディレクトリには、特定の構成が含まれています。

sourceRoot

プロジェクトのソース コードが配置されているディレクトリ。通常は src ディレクトリがデフォルトで使用されます。

projectType

このプロジェクトがアプリケーションであるかライブラリであるかを示します

prefix

Use ngコンポーネントを生成する | ディレクティブがコンポーネントまたは命令を生成するときのデフォルトのセレクター接頭辞。通常、コマンドを使用して作成するコンポーネントまたは命令は、プロジェクト全体を有効にするためにここで手動で変更できます。

schematics

コンポーネント、命令、モジュール、その他のファイルを生成するための CLI の命令は、@angular-devkit/schematics を使用して実装されます。これらの命令には通常、いくつかの命令が付属しています。たとえば、コンポーネントを生成するコマンド: ng g c --spec=false --styleext=scss。このコマンドは、テスト ファイルを使用せず、スタイル ファイルとして scss を使用してコンポーネントを直接生成できます。これらの設定を毎回手動で入力するのは面倒なので、angular.json ではクラス生成のためのいくつかのコマンド設定を統一的に設定するための Schemas 属性を提供しています。

ここにある回路図は単一のプロジェクトのものです。 angular.json 全体にもこのフィールドがあり、デフォルトですべてのプロジェクトで有効になります。

CLI はいくつかのオプション セットをプリセットしており、さまざまなオプションを構成できます:

@schematics/angular:component

@schematics/angular:class

@schematics/angular:directive

@schematics/angular:guard

@schematics/angular:module

#@schematics/angular:pipe

#@schematics /angular:service

コンポーネントを例として挙げます。統合された ng g c --spec=false --styleext=scss の効果を実現したい場合は、次のように構成できます。 ##その後、 ng g c を直接使用して、対応するコンポーネントを直接生成できます。

architect

ローカル実行、コンパイル、テストなど、CLI 関連のプロジェクト自動化コマンド構成のいくつかのセットが含まれています。 build、serve など、コマンド設定のいくつかのセットがデフォルトでプリセットされています。

{
    "schematics": {
        "@schematics/angular:component": {
             "styleext": "less",
             "spec": false
        }
    }
}
ログイン後にコピー

設定属性

各設定項目には 3 つのフィールド属性があります: builder、serve、 options 、デフォルトのビルド コマンド構成などの構成:

{
    "architect":{
        "build":{},
        "serve":{},
        "extract-i18n":{},
        "test":{},
        "lint":{}
    }
}
ログイン後にコピー
これは、プロジェクトによってデフォルトで生成される構成です。

builder代表要执行的内置程序,因为CLI内置了一些自动化工具,architect只是提供了一个facade模式(通俗地讲,就是开发者不需要知道内部的复杂实现)给开发者配置使用,本质上还是调用的内置工具。

options代表针对当前builder要配置的配置项,调用不同的内置程序,是需要传对应的配置项的,由于配置项很多,这里也不会列出。

configurations代表这个命令的多种调用模式,在此配置里,我们可以定义不同的别名,然后使用不同的配置(配置的字段还是属于options里的),最后在使用命令时便可以手动选择不同的模式。

如何使用

CLI其实内置了几个快捷命令来对应默认生成的配置如ng serve、ng build等等,如果是我们额外自定义的配置,则可以使用ng run :[:configurations] [其他配置]
命令来实现,其中project和architect为必填,configurations为选填。

比如我们简单额外自定义一个本地运行的服务器命令:

{
    "architect":{
        "myServe":{
            "builder": "@angular-devkit/build-angular:dev-server",
            "options": {
                "browserTarget": "xxxx:build",
                "port": 8800
            },
            "configurations": {
                "port1": {
                    "port": 8801
                },
                "port2": {
                    "port": 880
                }
            }
        }
    }
}
ログイン後にコピー

配置使用了内置的运行本地服务器程序,然后使用默认的build配置,加上自定义的运行端口,另外加上两个不同模式,运行不同端口。

使用ng run xxxx:myServe可以正常运行本地服务器跑项目,端口是8800
使用ng run xxxx:myServe:port1端口是8801

当然,我们还可以直接使用额外的命令行配置直接覆盖已经定义的配置:
ng run xxxx:myServe:port1 --port=8808

这里的例子只是为了简单了解下architect的用法。

defaultProject

默认项目,当使用一些CLI命令没有指定项目名称时,默认指向的项目。

schema.json

其实我只是为了记录自己有点印象的属性,整个angular.json还有很多其他的字段,如果想要全面了解,我们可以直接打开$schema所指向的文件,里面详细地展示了各种字段的类型、配置以及描述说明。


以上がangular.jsonファイルの説明(コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP と Vue: フロントエンド開発ツールの完璧な組み合わせ PHP と Vue: フロントエンド開発ツールの完璧な組み合わせ Mar 16, 2024 pm 12:09 PM

PHP と Vue: フロントエンド開発ツールの完璧な組み合わせ 今日のインターネットの急速な発展の時代において、フロントエンド開発はますます重要になっています。 Web サイトやアプリケーションのエクスペリエンスに対するユーザーの要求がますます高まっているため、フロントエンド開発者は、より効率的で柔軟なツールを使用して、応答性の高いインタラクティブなインターフェイスを作成する必要があります。フロントエンド開発の分野における 2 つの重要なテクノロジーである PHP と Vue.js は、組み合わせることで完璧なツールと見なされます。この記事では、PHP と Vue の組み合わせと、読者がこれら 2 つをよりよく理解し、適用できるようにするための詳細なコード例について説明します。

Redis と TypeScript を使用してハイパフォーマンス コンピューティング関数を開発する方法 Redis と TypeScript を使用してハイパフォーマンス コンピューティング関数を開発する方法 Sep 20, 2023 am 11:21 AM

Redis と TypeScript を使用してハイ パフォーマンス コンピューティング機能を開発する方法の概要: Redis は、高いパフォーマンスとスケーラビリティを備えたオープン ソースのインメモリ データ構造ストレージ システムです。 TypeScript は、型システムとより優れた開発ツールのサポートを提供する JavaScript のスーパーセットです。 Redis と TypeScript を組み合わせることで、大規模なデータ セットを処理し、Redis のメモリ ストレージとコンピューティング機能を最大限に活用するための効率的なコンピューティング関数を開発できます。この記事ではその方法を説明します

フロントエンドの面接官からよく聞かれる質問 フロントエンドの面接官からよく聞かれる質問 Mar 19, 2024 pm 02:24 PM

フロントエンド開発のインタビューでは、HTML/CSS の基本、JavaScript の基本、フレームワークとライブラリ、プロジェクトの経験、アルゴリズムとデータ構造、パフォーマンスの最適化、クロスドメイン リクエスト、フロントエンド エンジニアリング、デザインパターン、新しいテクノロジーとトレンド。面接官の質問は、候補者の技術スキル、プロジェクトの経験、業界のトレンドの理解を評価するように設計されています。したがって、候補者はこれらの分野で自分の能力と専門知識を証明するために十分な準備をしておく必要があります。

Django はフロントエンドですか、バックエンドですか?それをチェックしてください! Django はフロントエンドですか、バックエンドですか?それをチェックしてください! Jan 19, 2024 am 08:37 AM

Django は、迅速な開発とクリーンなメソッドを重視した Python で書かれた Web アプリケーション フレームワークです。 Django は Web フレームワークですが、Django がフロントエンドなのかバックエンドなのかという質問に答えるには、フロントエンドとバックエンドの概念を深く理解する必要があります。フロントエンドはユーザーが直接対話するインターフェイスを指し、バックエンドはサーバー側プログラムを指し、HTTP プロトコルを通じてデータと対話します。フロントエンドとバックエンドが分離されている場合、フロントエンドとバックエンドのプログラムをそれぞれ独立して開発して、ビジネス ロジックとインタラクティブ効果、およびデータ交換を実装できます。

C# 開発経験の共有: フロントエンドとバックエンドの共同開発スキル C# 開発経験の共有: フロントエンドとバックエンドの共同開発スキル Nov 23, 2023 am 10:13 AM

C# 開発者としての私たちの開発作業には、通常、フロントエンドとバックエンドの開発が含まれますが、テクノロジーが発展し、プロジェクトが複雑になるにつれて、フロントエンドとバックエンドの共同開発はますます重要かつ複雑になってきています。この記事では、C# 開発者が開発作業をより効率的に完了できるようにする、フロントエンドとバックエンドの共同開発テクニックをいくつか紹介します。インターフェイスの仕様を決定した後、フロントエンドとバックエンドの共同開発は API インターフェイスの相互作用から切り離せません。フロントエンドとバックエンドの共同開発をスムーズに進めるためには、適切なインターフェース仕様を定義することが最も重要です。インターフェイスの仕様にはインターフェイスの名前が含まれます

Go 言語のフロントエンド テクノロジーの探求: フロントエンド開発の新しいビジョン Go 言語のフロントエンド テクノロジーの探求: フロントエンド開発の新しいビジョン Mar 28, 2024 pm 01:06 PM

Go 言語は、高速で効率的なプログラミング言語として、バックエンド開発の分野で広く普及しています。ただし、Go 言語をフロントエンド開発と結びつける人はほとんどいません。実際、フロントエンド開発に Go 言語を使用すると、効率が向上するだけでなく、開発者に新たな視野をもたらすことができます。この記事では、フロントエンド開発に Go 言語を使用する可能性を探り、読者がこの分野をよりよく理解できるように具体的なコード例を示します。従来のフロントエンド開発では、ユーザー インターフェイスの構築に JavaScript、HTML、CSS がよく使用されます。

フロントエンドにインスタントメッセージングを実装する方法 フロントエンドにインスタントメッセージングを実装する方法 Oct 09, 2023 pm 02:47 PM

インスタント メッセージングを実装する方法には、WebSocket、ロング ポーリング、サーバー送信イベント、WebRTC などが含まれます。詳細な紹介: 1. クライアントとサーバーの間に永続的な接続を確立してリアルタイムの双方向通信を実現できる WebSocket フロントエンドは WebSocket API を使用して WebSocket 接続を作成し、送受信によるインスタント メッセージングを実現できます。 2. Long Polling(リアルタイム通信を模擬する技術)など

Golang とフロントエンド テクノロジーの組み合わせ: Golang がフロントエンド分野でどのような役割を果たすかを探る Golang とフロントエンド テクノロジーの組み合わせ: Golang がフロントエンド分野でどのような役割を果たすかを探る Mar 19, 2024 pm 06:15 PM

Golang とフロントエンド テクノロジーの組み合わせ: Golang がフロントエンド分野でどのような役割を果たしているかを調べるには、具体的なコード例が必要です。インターネットとモバイル アプリケーションの急速な発展に伴い、フロントエンド テクノロジーの重要性がますます高まっています。この分野では、強力なバックエンド プログラミング言語としての Golang も重要な役割を果たします。この記事では、Golang がどのようにフロントエンド テクノロジーと組み合わされるかを検討し、具体的なコード例を通じてフロントエンド分野での可能性を実証します。フロントエンド分野における Golang の役割は、効率的で簡潔かつ学びやすいものとしてです。

See all articles