- 投稿日:2020-07-01T23:01:44+09:00
Cloud Firestore でサーバーの現在時刻を保存する
概要
Firebase の Cloud Firestore でサーバーの現在時刻を保存する方法を調べたので、ご紹介します。
Firestore でサーバーの現在時刻を保存するサンプルコード
結論としては、
require("firebase-admin").firestore.FieldValue.serverTimestamp()
を利用すれば良いです。以下、Node.js のサンプルコードです。
const admin = require("firebase-admin"); const db = admin.firestore(); const FieldValue = admin.firestore.FieldValue; let docRef = db.collection('objects').doc('some-id'); let updateTimestamp = docRef.update({ timestamp: FieldValue.serverTimestamp() });以上、Cloud Firestore でサーバーの現在時刻を保存したい、現場からお送りしました。
参考情報
- 投稿日:2020-07-01T22:45:58+09:00
Error ExecJS::RuntimeUnavailable: 発生時の対処法
発生現象
AWSのEC2でWebサーバ、アプリケーションサーバの設定時に、環境変数の設定をする際の
$ rake secret
を実行した際に下記Errorが発生。terminalExecJS::RuntimeUnavailable: Could not find a JavaScript runtime. See https://github.com/rails/execjs for a list of available runtimes. /var/www/chat-space/config/application.rb:7:in `<top (required)>' /var/www/chat-space/Rakefile:4:in `require_relative' /var/www/chat-space/Rakefile:4:in `<top (required)>' (See full trace by running task with --trace)→Javascriptがうまく走っていないので、Node.jsをinstallする。
install確認
local環境にて
terminal$ node --version v12.16.1AWSの本番環境にもinstallする
terminalsudo yum install nodejs --enablerepo=epel ←実行 読み込んだプラグイン:priorities, update-motd, upgrade-helper amzn-main | 2.1 kB 00:00:00 amzn-updates | 3.8 kB 00:00:00 epel/x86_64/metalink | 5.3 kB 00:00:00 epel | 4.7 kB 00:00:00 nodesource | 2.5 kB 00:00:00 (1/3): epel/x86_64/group_gz | 74 kB 00:00:00 (2/3): epel/x86_64/updateinfo | 789 kB 00:00:00 (3/3): epel/x86_64/primary_db | 6.1 MB 00:00:00 1073 packages excluded due to repository priority protections 依存性の解決をしています --> トランザクションの確認を実行しています。 ---> パッケージ nodejs.x86_64 2:6.17.1-1nodesource を インストール --> 依存性の処理をしています: python >= 2.6 のパッケージ: 2:nodejs-6.17.1-1nodesource.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ python26.x86_64 0:2.6.9-2.89.amzn1 を インストール --> 依存性の処理をしています: libpython2.6.so.1.0()(64bit) のパッケージ: python26-2.6.9-2.89.amzn1.x86_64 --> トランザクションの確認を実行しています。 ---> パッケージ python26-libs.x86_64 0:2.6.9-2.89.amzn1 を インストール --> 依存性解決を終了しました。 依存性を解決しました ========================================================================================== Package アーキテクチャー バージョン リポジトリー 容量 ========================================================================================== インストール中: nodejs x86_64 2:6.17.1-1nodesource nodesource 13 M 依存性関連でのインストールをします: python26 x86_64 2.6.9-2.89.amzn1 amzn-main 5.8 M python26-libs x86_64 2.6.9-2.89.amzn1 amzn-main 697 k トランザクションの要約 ========================================================================================== インストール 1 パッケージ (+2 個の依存関係のパッケージ) 総ダウンロード容量: 20 M インストール容量: 59 M Is this ok [y/d/N]: y Downloading packages: 警告: /var/cache/yum/x86_64/latest/nodesource/packages/nodejs-6.17.1-1nodesource.x86_64.rpm: ヘッダー V4 RSA/SHA512 Signature、鍵 ID 34fa74dd: NOKEY nodejs-6.17.1-1nodesource.x86_64.rpm の公開鍵がインストールされていません (1/3): nodejs-6.17.1-1nodesource.x86_64.rpm | 13 MB 00:00:00 (2/3): python26-libs-2.6.9-2.89.amzn1.x86_64.rpm | 697 kB 00:00:00 (3/3): python26-2.6.9-2.89.amzn1.x86_64.rpm | 5.8 MB 00:00:01 ------------------------------------------------------------------------------------------ 合計 16 MB/s | 20 MB 00:00:01 file:///etc/pki/rpm-gpg/NODESOURCE-GPG-SIGNING-KEY-EL から鍵を取得中です。 Importing GPG key 0x34FA74DD: Userid : "NodeSource <gpg-rpm@nodesource.com>" Fingerprint: 2e55 207a 95d9 944b 0cc9 3261 5ddb e8d4 34fa 74dd Package : nodesource-release-el7-1.noarch (installed) From : /etc/pki/rpm-gpg/NODESOURCE-GPG-SIGNING-KEY-EL 上記の処理を行います。よろしいでしょうか? [y/N]y Running transaction check Running transaction test Transaction test succeeded Running transaction インストール中 : python26-libs-2.6.9-2.89.amzn1.x86_64 1/3 インストール中 : python26-2.6.9-2.89.amzn1.x86_64 2/3 インストール中 : 2:nodejs-6.17.1-1nodesource.x86_64 3/3 検証中 : 2:nodejs-6.17.1-1nodesource.x86_64 1/3 検証中 : python26-2.6.9-2.89.amzn1.x86_64 2/3 検証中 : python26-libs-2.6.9-2.89.amzn1.x86_64 3/3 インストール: nodejs.x86_64 2:6.17.1-1nodesource 依存性関連をインストールしました: python26.x86_64 0:2.6.9-2.89.amzn1 python26-libs.x86_64 0:2.6.9-2.89.amzn1 完了しました!以上で本番環境でもjavascriptが走るようになりました。
- 投稿日:2020-07-01T11:46:49+09:00
Node.jsを使用してWebアプリケーションからAlibaba Cloud Object Storage Serviceにコンテンツをアップロード
このチュートリアルでは、Node.jsを使ってWebアプリケーションからAlibaba Cloud Object Storage Serviceにコンテンツをアップロードする方法を検討します。
本ブログは英語版からの翻訳です。オリジナルはこちらからご確認いただけます。一部機械翻訳を使用しております。翻訳の間違いがありましたら、ご指摘いただけると幸いです。
必要条件
このチュートリアルを実行するには、以下のものが必要です。
1、Alibaba Cloud Object Storage Serviceに登録し、秘密のアクセスキーを取得します。
2、マシン上でNode.jsとnpmを実行します。Node.js Downloadsには、Nodeのインストール方法についての詳細な情報が記載されています。
まとめると、Alibaba Cloudのアカウント、Object Storage Service、Node.js、npm、OSSサービスのアクセスキーが必要になります。アクセスキーをクレデンシャルファイルに追加する方法
そもそも、Alibaba Cloud OSSはRESTfulなAPI操作をサポートしており、ほとんどの言語に対応したSDKを提供しています。このチュートリアルでは、オープンソースのOSS JavaScript SDK for node.jsを使用します。まずはこのように ali-oss をインストールする必要があります。
npm install ali-oss注目すべきは、同期モードと非同期モードの2つのモードから選択できることです。
同期モードで使用するには、さらにcoと組み合わせて使用することができます。 coをインストールするようにしてください。
npm install co非同期モードはコールバックをサポートしています。
クライアントの初期化
このメソッドは同期モードで適用されます。このメソッドでは、以下のような app.js オブジェクトを作成します。
var co = require('co'); var OSS = require('ali-oss'); var client = new OSS({ region: '<Your region>', accessKeyId: '<Your AccessKeyId>', accessKeySecret: '<Your AccessKeySecret>' });Alibaba Cloudでは、OSSサービスに加入している場合、地域を指定しなければならなかったので、リージョンフィールドは非常に重要です。OSSノードの完全なリストは以下の通りです。
さらに、OSS Nodesのリストにないエンドポイントもありますが、その場合は以下のパラメータを設定する必要があります。
1、secure: リージョンと組み合わせて使用します。secureをtrueに指定した場合はHTTPを使ってアクセスします。
2、endpoint: エンドポイントを指定した場合、リージョンを無視しても大丈夫です。endpointにHTTPSを指定してもOKです。
3、bucket:バケットが指定されていない場合は、まず useBucket インターフェースを呼び出す必要があります。
4、timeout: デフォルトでは60秒です。OSS APIのタイムアウトを指定するためのパラメータです。
見た目は問題なさそうですが、次のステップに進みます。
依存関係のインストール
このステップではnode.jsの依存関係をインストールして、ノードアプリケーションが置かれるディレクトリを作成します。このチュートリアルでは、OSS-node-appで以下のようにアプリを作成します。
mkdir sites/OSS-node-app && cd sites/OSS-node-app次に、package.jsonファイルを作成し、そこに以下のコードを貼り付けます。
{ "name": "OSS-node-app", "version": "1.0.0", "main": "server.js", "scripts": { "start": "node server.js" }, "license": "MIT" }上記のサンプルでは、アプリの名前、バージョン、ライセンスを記述した package.json ファイルを作成しています。scriptsパラメータは、node server.jsではなく、npm startを使用してnode serverを実行できるようにします。
インストールする必要のあるすべての依存関係は、npm installコマンドを使用してインストールされます。次に4つの依存関係が続き、このプロジェクトでは以下のようにインストールされます。
npm install ali-oss express私たちの依存関係は、OSSのAPIを使って作業したり、Webサーバーを立ち上げたり、ファイルのアップロードを処理したりすることを可能にしています。上記のコマンドはまた、package.jsonを更新します。
1、ali-OSS - 私たちがJavaScript APIにアクセスできるようにするためのJavaScript用のAlibaba SDKです。
2、express - Expressは、サーバーの迅速かつ効率的なセットアップを可能にします。
プロジェクトの場所と依存関係がすべてセットアップされたので、サーバーを起動してフロントエンドのビューをセットアップすることができます。すべての依存関係は、それ以降のすべてのNode.jsバージョンではデフォルトでpackage.jsonファイルに保存されることに注意してください。フロントエンドアプリの作成
アプリケーションのパブリックビュー用のファイルを作成することから始めましょう。index.html、succeed.html、error.htmlを使ってパブリックフォルダを作成します。これら3つのファイルは、以下に示すようなHTMLの骨格を持っていますが、内容が異なるだけです。全てのファイルに以下のコードを貼り付けます。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>OSS Node Tutorial</title> <link rel="stylesheet" href="./style.css"> </head> <body> <!—your content here --> </body> </html>このように、それぞれのファイルにエラーメッセージを書き込んでください。
<h1>Something went wrong!</h1> <p>Uploading the file was unsuccessful.</p>このように、それぞれのファイルに成功メッセージを書き込んでください。
<h1>Success!</h1> <p>File uploaded successfully.</p>ここでは、index.htmlにmultipart/form-dataを含むHTMLフォームを作成します。フォームには、送信ボタンも用意しなければなりません。
<h1>OSS Tutorial</h1> <p>Please select a file and submit form to upload.</p> <form method="post" enctype="multipart/form-data" action="/upload"> <label for="file">Upload a file</label> <input type="file" name="upload"> <input type="submit" class="button"> </form>では、インターフェイスを見やすくするためにstyle.cssを作成します。
html { font-family: sans-serif; line-height: 1.5; color: #333; } body { margin: 0 auto; max-width: 500px; } label, input { display: block; margin: 5px 0; }無事にアップロード用のファイル、成功ページとエラーページの作成が完了しましたので、弊社のNode.jsアプリをご紹介します。
Expressを使ったサーバーの設定
今回はExpressフレームワークを使ってnode.jsサーバーを濡らしていきます。まず、プロジェクトのルートディレクトリにserver.jsファイルを作成します。次に、require()を使用して4つの依存関係をロードし、以下のようにExpressのアプリインスタンスを経由してアプリをルーティングする必要があります。
server.js // Load dependencies const ali = require(ali-oss'); const express = require('express'); const app = express();アプリケーションのフロントエンドは公開リポジトリにあるので、依存関係の設定は以下のように設定しなければなりません。
// Views in public directory app.use(express.static('public'));そして、3つのファイルをサーバのルートに相対的にルーティングするように進めます。
// Main, error and success views app.get('/', function (request, response) { response.sendFile(__dirname + '/public/index.html'); }); app.get("/success", function (request, response) { response.sendFile(__dirname + '/public/success.html'); }); app.get("/error", function (request, response) { response.sendFile(__dirname + '/public/error.html'); });ここでは、リスニングに使用するポートを設定する必要があります。
server.js app.listen(5000, function () { console.log('Server listening on port 5000.'); });これを保存して、npm startを使ってサーバーを起動します。
npm start Output > node server.js Server listening on port 5000.ブラウザのアドレスバーにhttp://localhost:5000と入力すると、アップロードフォームにアクセスできるはずです。また、http://localhost:5000/success と http://localhost:5000/error にアクセスして反応を試してみてください。
ファイルのアップロード
サーバーはすべてセットアップされているので、最初のファイルをAlibaba OSSにアップロードできるようにするために、フォームをali-ossに統合しなければなりません。
server.js const app = express(); // Set endpoint to Alibaba OSS const spacesEndpoint = new OSS.Endpoint(' http://oss-cn-hangzhou.aliyuncs.com.'); const s3 = new OSS({ endpoint: spacesEndpoint });新しい OSS() を使用して OSS クライアントに接続する必要があります。
この最初のインスタンスでは、単純なローカルファイルのアップロードを実装しています。
var co = require('co'); var OSS = require('ali-oss') var client = new OSS({ region: '<Your region>', accessKeyId: '<Your AccessKeyId>', accessKeySecret: '<Your AccessKeySecret>', bucket: 'Your bucket name' }); co(function* () { var result = yield client.put('object-key', 'local-file'); console.log(result); }).catch(function (err) { console.log(err); });2 番目のインスタンスでは、putStream インターフェイスを使用してアクセスされたストリームのアップロードを使用します。固有の読み取り可能なストリームを持つ任意のオブジェクトは、このメソッドで有効になります(オブジェクトとネットワーク ストリームの両方)。putStream インターフェースが使用されると、SDK は自動的にチャンク化されたエンコーディングの HTTP PUT を開始します。
var co = require('co'); var OSS = require('ali-oss'); var fs = require('fs'); var client = new OSS({ region: '<Your region>', accessKeyId: '<Your AccessKeyId>', accessKeySecret: '<Your AccessKeySecret>', bucket: 'Your bucket name' }); co(function* () { // use 'chunked encoding' var stream = fs.createReadStream('local-file'); var result = yield client.putStream('object-key', stream); console.log(result); // do not use 'chunked encoding' var stream = fs.createReadStream('local-file'); var size = fs.statSync('local-file').size; var result = yield client.putStream( 'object-key', stream, {contentLength: size}); console.log(result); }).catch(function (err) { console.log(err); });バッファ内のオブジェクトの内容をアップロードするには、put インターフェースを介してアクセスします。
var co = require('co'); var OSS = require('ali-oss'); var client = new OSS({ region: '<Your region>', accessKeyId: '<Your AccessKeyId>', accessKeySecret: '<Your AccessKeySecret>', bucket: 'Your bucket name' }); co(function* () { var result = yield client.put('object-key', new Buffer('hello world')); console.log(result); }).catch(function (err) { console.log(err); });非常に大きなファイルをアップロードする場合、multipartUploadインターフェースはリクエストをより小さな実行可能なリクエストに分割することができます。この方法の利点は、ファイル全体を修正するのとは対照的に、失敗した部分だけをアップロードする必要があることです。以下のパラメータを使用します。
1、name {String}:オブジェクト名
2、file {String|File}:ファイルパスまたは HTML5 Web ファイル
3、[options] {Object}:オプションのパラメータ1、[checkpoint] {Object}: 再開可能なアップロードで使用するエンドポイントのチェックポイントです。このパラメータを設定すると、エンドポイントからアップロードが開始されます。設定されていない場合は、アップロードを再開します。
2、[partSize] {Number}: パーツサイズ
3、[progress] {Funtion}: ジェネレーター機能。3つのパラメータを含む。
-----1.(percentage {Number}: アップロードの進捗状況 (0から1までの10進数)
-----2.(checkpoint {Object}.:エンドポイントチェックポイント
-----3.(res {Object}):単一のパーツが正常にアップロードされた後に返されるレスポンス
4、[meta] {Object}: x-oss-meta-という接頭辞を持つユーザによって定義されたヘッダメタ情報。
5、[headers] {Object}: 余分なヘッダ。詳細は RFC 2616 を参照してください。
-----1.'Cache-Control':HTTP リクエストとレスポンスでコマンドを指定してキャッシュメカニズムを実装するために使用される一般的なヘッダ。例えば、以下のようになります。Cache-Control: public, no-cache
-----2.'Content-Disposition':これは、内部参照(ウェブページやページの一部)や、ローカルにダウンロードして保存された添付ファイルである可能性があります。例えば、以下のようになります。Content-Disposition: somename
-----3.'Content-Encoding':特定のメディアタイプのデータを圧縮するために使用されます。例えば Content-Encoding: gzip
-----4.'Expires':有効期限。例えば Expires. 3600000var co = require('co'); var OSS = require('ali-oss') var client = new OSS({ region: '<Your region>', accessKeyId: '<Your AccessKeyId>', accessKeySecret: '<Your AccessKeySecret>', bucket: 'Your bucket name' }); co(function* () { var result = yield client.multipartUpload('object-key', 'local-file', { progress: function* (p) { console.log('Progress: ' + p); } meta: { year: 2017, people: 'test' } }); console.log(result); var head = yield client.head('object-key'); console.log(head); }).catch(function (err) { console.log(err); });上記のprogressパラメータは、アップロードの進捗状況を取得するためのcalback関数です。
var progress = function (p) { return function (done) { console.log(p); done(); }; };結論
おめでとうございます。Alibaba Cloud Object Storage Service (OSS) スペースにオブジェクトをアップロードするためのExpressアプリケーションの設定に成功しました! Alibaba Cloudのアカウントをお持ちでない方は、アカウントを登録してください。アカウントにサインアップして、最大1200ドル相当の40以上の製品を無料でお試しください。Alibaba Cloudの詳細については、「Get Started with Alibaba Cloud」を参照してください。
アリババクラウドは日本に2つのデータセンターを有し、世界で60を超えるアベラビリティーゾーンを有するアジア太平洋地域No.1(2019ガートナー)のクラウドインフラ事業者です。
アリババクラウドの詳細は、こちらからご覧ください。
アリババクラウドジャパン公式ページ
- 投稿日:2020-07-01T10:25:49+09:00
AltJS製のNodeモジュールをGitHubから直接インストールすると同時に、そのライブラリのビルドを自動化するpackage.jsonの設定
この投稿では、NodeモジュールをGitHubから直接インストールする際、そのライブラリをインストールのタイミングでビルドする方法を紹介します。
この手法はどういうときに使うか?
普段、
yarn add ライブラリ名
をすると、npmjs.orgのレジストリにアップロードされたモジュールが、手元のnode_modulesに入ってきます。仮に、ライブラリのソースコードがTypeScriptやBebelなどのAltJSであったとしても、node_modulesにインストールされるのは普通ビルド後のJavaScriptです。これはライブラリ開発者がnpmjs.orgに公開するとき、AltJSからJavaScriptにビルドしたものをアップロードしてくれているからです。なので、モジュール利用者は、ライブラリのソースコードがもともとどんな言語で書かれているかを気にする必要がありませんし、ましてや、モジュール利用者が
npm install
しするたびに、わざわざライブラリのソースコードからビルドする必要は普通ありません。どうしてもソースコードからインストール&ビルドしたい場合に使う
しかし、場合によっては「普通」じゃないインストールをしたい場合があります。どうしてもソースコードからインストールする必要がある場合です。
例えば、「ライブラリのGitHubにプルリクエストを送って取り込まれたけれど、npmjs.orgには未公開。でも、すぐにそのリビジョンのコードを使いたい」といったケースです。
このケースでは、どこにもビルド済みのコードがなく、TypeScriptやBebelなどのAltJSのコードがGitHub上にあるだけ、という状況になります。
YarnやNPMでは、GitHubのURLを指定してmasterブランチをnode_modulesにインストールすることができます:
npm install 'https://github.com/suin/isObject.js.git#master' # or yarn add 'https://github.com/suin/isObject.js.git#master'しかし、この方法ではAltJSのコードしかインストールされず、必要となるビルド後のJSファイルが手に入りません:
ls -a1 node_modules/@suin/is-object CHANGELOG.md index.ts # TypeScriptしかない! LICENSE package.jsonこのままでは、モジュールを
import
/require()
しても使えません。モジュールのインストールと同時にビルドを実行する必要があるのです。
モジュールインストール時にビルドを実行するためのpackage.jsonの設定
では、
npm install
やyarn add
と同時に、インストールしたモジュールのビルドを実行するにはどうしたらいいか、どういう設定をpackage.jsonに施したらいいかについて説明します。ステップ1: モジュールのビルド方法を調べる
まず、自プロジェクトのpackage.jsonをいじる前に、ビルドするパッケージのpackage.jsonを開いて情報収集します。
例えば、
@suin/is-object
パッケージのpackage.jsonは以下のようになっています:package.json{ "name": "@suin/is-object", "version": "1.1.3", "description": "TypeScript friendly isObject function", ... "main": "index.js", ... "scripts": { "build": "tsc", ... }, "devDependencies": { ... } }この中で注目するのは、
main
フィールドとscripts
フィールドです。1つ目の
main
フィールドはビルド後の成果物のファイル名です。ライブラリ利用者の我々としては、これが欲しいのでこのファイル名をメモしておきます。2つ目の
scripts
フィールドには、たいていビルドするためのコマンドが定義されています。多くの場合、build
という名前で定義することが多いです。ここはライブラリの開発者次第なので、よく調べてみる必要があります。ライブラリによってはREADME.mdやCONTRIBUTING.mdにビルドの手順が書いてあるかもしれないので、そこも目を通しておきます。この@suin/is-object
パッケージの例では、build
コマンドだけで良いことがわかります。また、パッケージがYarnとNPMどちらでビルドしているのかも調べておきます。これは、yarn.lockとpackage-lock.jsonどちらがあるかで判断できます。
ステップ2:
postinstall
にビルドのスクリプトを組む上の調査で、ビルド後の成果物ファイル名とビルド方法が分かったら、自プロジェクトの
package.json
に手を加えて、モジュールのインストール時にビルドを実行するように設定します。
yarn add
やnpm install
後に何かコマンドを実行するには、postinstall
をscripts
フィールドに追加します:package.json{ "name": "my-app", "scripts": { "postinstall": "echo インストール後になにかするよ" } }
postinstall
にはシェルスクリプトが書けるので、ここにモジュールをビルドするためのコマンドを書いていきます。@suin/is-object
パッケージの例では、次のようなステップでビルドします。
- 成果物ファイルの
index.js
があるか確認する。- あればビルドしない。→ 終了
- なければ、
- モジュールが依存するパッケージをインストールする。
- モジュールをビルドする。 → 終了
これをシェルスクリプトに起こすと、次のようになります:
set -eux # 成果物ファイルの`index.js`があるか確認する。 if [ ! -f ./node_modules/@suin/is-object/index.js ] then # なければ、 cd ./node_modules/@suin/is-object # モジュールが依存するパッケージをインストールする。 yarn install --frozen-lockfile # モジュールをビルドする。 yarn build fiこのシェルスクリプトを
postinstall
に書いておきます:package.json{ "scripts": { "postinstall": "set -eux; if [ ! -f ./node_modules/@suin/is-object/index.js ]; then cd ./node_modules/@suin/is-object; yarn install --frozen-lockfile; yarn build; fi" }この状態で、モジュールをGitHubからインストールしてみます:
yarn add 'https://github.com/suin/isObject.js.git#master'実行結果は次のようになります。ライブラリのインストール後に、ライブラリのビルドが行われました:
以上で、package.jsonの設定は完了です。
これにより、AltJS製のNodeモジュールをGitHubから直接インストールすると同時に、そのライブラリのビルドが自動化されます。
- 投稿日:2020-07-01T04:54:46+09:00
Node.js をインストールする
環境
- Windows 10 Pro
- 64ビット
ダウンロード
node.js のサイトから使用環境に該当するインストーラーをダウンロードする。
https://nodejs.org/ja/download/インストール
項目 概要 Node.js runtime Node.js の本体 Event tracing (ETW) Node.jsで生成されたイベントをETW(Event Tracing for Windows)でトレースできるようにする? npm package manager パッケージの管理 Online documentation shotcuts オンラインドキュメント・ウェブサイトへのショートカット Add to PATH Node.js と npm を環境変数に追加 Node.js and npm システム環境変数への追加 npm modules npm をユーザー環境変数へ追加 確認
- 投稿日:2020-07-01T04:54:46+09:00
Node.js をインストールする(Windows)
環境
- Windows 10 Pro
- 64ビット
ダウンロード
node.js のサイトから使用環境に該当するインストーラーをダウンロードする。
https://nodejs.org/ja/download/インストール
項目 概要 Node.js runtime Node.js の本体 Event tracing (ETW) Node.jsで生成されたイベントをETW(Event Tracing for Windows)でトレースできるようにする? npm package manager パッケージの管理 Online documentation shotcuts オンラインドキュメント・ウェブサイトへのショートカット Add to PATH Node.js と npm を環境変数に追加 Node.js and npm システム環境変数への追加 npm modules npm をユーザー環境変数へ追加 確認