本当はNode.jsはサーバーサイドというよりCLIで実行できるプログラムを作るためのJavaScript環境という説明が正しいのではないか
これは質問者さんが感じてる方がその通りです。
じゃあ何処からNode.jsがサーバーサイド用という話が出てきたか?
これに関してはNode.js開発者の動機が関係しています。
その理由が「何も気にする必要なくC10k問題を解決出来るWebサーバがほしかったから」だったと記憶しています。
その為、型やメモリ管理のコアな部分だけV8エンジンを拝借して、C++でファイル操作や自由なネットワーク通信のモジュールをくっつけてNode.jsが完成しています。
npmでインストールしなければならない点に疑問を持ちます
パッケージ管理ソフトと言うものは利用した経験はありますか?
MacならHomebrew、CentOSならyum、Debianならaptと言うふうにOSのコマンドラインツールや開発ツールを導入する為のツールが存在し、
また言語に付くパッケージ管理ソフトもあります。
Rubyならgem、Pythonならpipといった具合です。
Node.jsはnpmというパッケージ管理ソフトと二人三脚みたいな所があります。
プロジェクトルートだと決めた所でnpm init
でpackage.jsonファイルを生成し、npmがもつ膨大なオープンソースライブラリから好きなモジュールをDLして自分のプログラムに差し込むことができます。
その経緯は全てpackage.jsonに書き足されていくので、もし新しい開発者がプロジェクトに参画してもpackage.jsonを用意してnpm install
コマンド一撃で既存の開発環境が出来上がりです。
そういう経緯でnpmというOSS共有サービスに寄付すれば誰でもインストールできるようになります。
無断で勝手に貴方の極秘ファイルを吸い上げるわけではなく、GitHubのようにアカウントを取得して、GitHubと同じくパッケージの開発者か、許可を出した人以外はnpmのパッケージを更新出来ないようになります。
この辺の整備があるので、各個人がこっそりGitHubで公開するような感じてはなく、
npmを介してライブラリやモジュールを入れるのが一般的です。
ElectronについてもGUIを作成するのに何故npmでインストールするのか分かりません
ネットにはChroniumというオープンソースのブラウザが転がっています。
HTMLとCSSさえあればページを表示してあちこちクリックしてブラウザとして使えそうですよね?
しかしJavaScriptはファイル読み書きやネットワーク通信という機能が貧弱で好き勝手なデスクトップアプリを作る面で評価すれば論外です。
もしブラウザで動くスクリプトでファイルを読み書き出来るなら、
「Cドライブのデータを全て消去して」という命令を書き込んだJavaScriptを私のサイトに記述しておけば、私のサイトを閲覧したユーザーのハードディスクは全滅です。
そういうセキュリティ的な都合で、情報を閲覧するブラウザではJavaScript越しにファイル操作の権限は一生与えませんよみたいな仕組みになっています。
そこでJavaScriptの代わりにNode.jsを突っ込んで、documentやwindowのグローバル変数を紐付けしたのがそれです。
まぁ、ちゃんと触った事無いので細部に関してはドキュメント等をしっかり読んでください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/23 07:47
2019/04/23 07:51