2016-05-26 3 views
2

私はangle2クイックスタートを読み始めていて、npm、node、およびtypescriptを使用していることに気付きました。私はangular2でnode.jsの使用が何であるか疑問に思っていましたか?クライアント側のフレームワークだけでは角張っていませんか? node.jsの使い方とnode.jsの正確な動作は何ですか?クイックスタートでは、node.jsなしでangular2を使用する方法を示していません。ですから私の心は、クライアント側のフレームワークなので、ちょっと混乱しています。Angular2とnode.js

ご清聴ありがとうございます。

答えて

6

Angular2はクライアント側のフレームワークなので、動作させるためにnodejsは必要ありません。 typescriptコンパイラはnodejs上で動作するので、混乱はtypescriptから発生します。そのtypescriptですがimportexport機能を持つモジュールのサポートが導入さES6をサポートします。

NodeJSは、それが建物のアプリ、タスクランナー、コンパイラ、テストフレームワークなどのために多くのツールを提供しているので、フロントエンドの開発サイクルの不可分の一部となりました。

PS:link

あなたがメインヘッダの下のドロップダウンメニューから言語を切り替えることができますジャバスクリプト専用の角度のドキュメントがあります。残念ながら、現時点でほとんどのドキュメントはTypescriptのためだけに書かれています。 すでにコンパイルされたangular2のソースをダウンロードし、ノードなしで使用することができます。

3

事実:確かに、angularJSは、クライアント側のフレームワークです。しかし、NODEJSはサーバーサイドフレームワークではなく、JavaScriptランタイム環境を提供するプラットフォームです。

  • それは、NPMのヘルプ(ノードで、Webページで使用するすべてのJSライブラリ(例えば角度)への即時アクセスを提供します。NodeJSは、クライアント側の開発に使用されているのはなぜ

    パッケージマネージャ)。したがって、npm install package_name --saveを使用して必要なライブラリをインストールしてください。だから、学ぶ必要はありません

  • build scriptsと書いてウォッチャーを作成できます。従って、GulpまたはGruntの必要性はない
  • クライアントアプリケーションの変更をライブリロードするためのライブリロードノードモジュールをインストールできます。 Angular2(JavaScriptの)ドキュメントで使用

NODEJS:

  • クライアントアプリケーションのためのすべての必要なライブラリが含まれていpackage.jsonファイルを作成しました。
  • 次は、単純にnpm installを押すと、すべての必要なライブラリがnode_modulesフォルダの下に、ローカルマシンにダウンロードされます。
  • ので:ウェブアプリや変更のライブリロードそれを提供していますlite-server<script src="node_modules/@angular/core/core.umd.js"></script>
  • と呼ばれるノードモジュールをインストールします。 npm startによって実行されます。package.jsonのスクリプトセクションを確認してください。
  • したがって、futher開発のためにあなたは自分のアプリに注力する必要があり、1は次のように使用することができます任意のクライアント側のライブラリをダウンロードするために:一日の終わりにnpm install jQuery --save

を、NODEJSはちょうどちょうどであなたの人生が容易になりますone package.jsonファイル。

+0

説明をいただきありがとうございます。私はこのすべてにおいて非常に初心者です。私はいくつかのnode.jsとexpress.jsを行いました。そして、あなたがノードapp.jsのような何かをやって起動するのをほとんど覚えています。しかし、angle2のクイックスタートでは、nite startを実行してlite-server ...を実行します。プロダクションではどのように起動しますか?私はノードapp/app.component.jsまたはノードindex.htmlを試しましたが、明らかにそれは動作しません....私はlite-serverを使うつもりはありませんが、例えばnginxのようなものを使っています... – pdiddy

+0

本番環境では、index.htmlを提供し、必要なJSファイルを残すだけです。だから、それはあなたが静的なファイル(html/JS/CSS)を提供するためにnginxを使うことができるので、それは超高速です。または、独自のnodeJSサーバーを作成して静的ファイルを提供することもできます。 – Nivesh

+0

この設定は開発環境用です。本番環境では、必要なファイル(HTML/JS/CSS)をdistフォルダの下に置き、提供することができます。あなたの選択したWebサーバーを使用します。 – Nivesh

0

なぜなら、Angular2はNPMモジュールとして提供されていると思うのは、TypeScriptのコンパイルによるものです。

コンパイラには、モジュール契約のファイルがd.ts必要です。あなたはtsconfig.jsonファイルにnodemoduleResolution属性を指定するときまた、ノードを介してそれらをロードします:

言われていること
{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "moduleResolution": "node", // <----- 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": false 
    }, 
    "exclude": [ 
    "node_modules", 
    "typings/main", 
    "typings/main.d.ts" 
    ] 
} 

、ノードは、ブラウザ内で実行Angular2アプリケーション自体の中で使用されていません。

関連する問題