- 1. npmの真実
- 2. nodejsでaws-sdkを使った時にハマったこと
- 3. ChatGPTにLambda(Node.jsランタイム)で環境変数を参照する方法を聞いてみた
- 4. ubuntu22.04にnodejs18をインストールする
- 5. CKEditor5の開発環境を構築する
- 6. tiny sqlite3 + node + sqlite_web
- 7. 期待の新星@clack/promptsで作る対話型CLI
- 8. CommonJSとESModuleの設定ミスでSlackアプリを実行できなかった話
- 9. Node.jsではmysqlよりmysql2を使うべき理由
- 10. [初心者向け] Cacheを使ったNode.jsのパッケージのインストールの方法と仕組みについて徹底解説
- 11. MongoDBのコネクションプールがわからなかったので調査
- 12. Cloudflare Pagesでデプロイ時のNode.jsバージョンを指定する
- 13. yarnのインストール方法
- 14. Ubuntu 22.04.1 LTS にnpmとnodeをインストールする方法
- 15. (無料)Twitter API v2 を用いたブックマークの取得
- 16. Ubuntu 22.04にMongoDB 6.0とfree5GC WebUIをインストールする
- 17. Ubuntu 22.04にMongoDB 6.0とOpen5GS WebUIをインストールする
- 18. GitHub Actionsでメタデータファイル(action.yml)を作成してワークフローを共通化しよう!
- 19. Windows10のNode.js環境でVue3 + Vuetify3 + TypeScript構成のアプリケーションを開発できるようにする
- 20. オンラインRPG「REDSTONE」(赤石)をウェブ移植してみた
npmの真実
### npmについて
Node.jsのパッケージ管理ソフトウェアのようなもの。### npmって何の略?
皆さんのなかには「npm」って 「Node Package Manager」じゃないの?
と思っている方もいるかも知れません。しかし、それは違います。
公式によると、npmの前身が「pm」というbashのユーティリティであり、更にそのpmは「pkgmakeinst」の略であるそうです。
略として見なすならば
「node pm」
もしくは
「new pm」が正しいようです。
https://npm.im/npm
に乗ってました。Google翻訳で日本語にした結果
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2920761/673ecb5e-fdce-debe-1201-31dffcba483d.png)
英語
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/
nodejsでaws-sdkを使った時にハマったこと
# はじめに
`AWS Lambda` `runtime: nodejs`を使って
`S3`にファイルをアップロードしようとした際につまづいたことをメモ。# 環境
* aws-lambda
* runtime: nodejs 14.*# 結論
#### `aws-sdk`にはV2とV3がある
#### そして、私の環境ではV2だと動きませんでした。
クラメソにも記事がありました。
https://dev.classmethod.jp/articles/aws-sdk-for-javascript-v2-v3-diff/
# 導入方法の違い
“`bash
// V2
$ npm install aws-sdk// V3
$ npm install @aws-sdk/client-s3
“`# S3へオブジェクトをuploadするときの違い
## V2の場合
“`typescript
import * as AWS from ‘aws-sdk
ChatGPTにLambda(Node.jsランタイム)で環境変数を参照する方法を聞いてみた
# やったこと
ググるのがめんどくさかったのでChatGPTに聞いてみました。## 質問
“`
> LambdaのNode.jsランタイムで環境変数の参照の仕方を教えて
“`## 回答
AWS LambdaのNode.jsランタイムでは、環境変数を参照するために `process.env` オブジェクトを使用します。このオブジェクトには、Lambda関数の実行時に設定されたすべての環境変数が含まれます。以下は、Lambda関数内で環境変数を参照する方法の例です。
“`
exports.handler = async (event, context) => {
// 環境変数の参照
const myVar = process.env.MY_VAR;
console.log(`MY_VARの値: ${myVar}`);// 他の処理
// …
};
“`上記の例では、`process.env.MY_VAR` を使用して、`MY_VAR` という名前の環境変数の値を参照しています。Lambda関数が実行される
ubuntu22.04にnodejs18をインストールする
普通に`sudo apt install nodejs`をするとv12というとても古いバージョンが入る
“`sh
$ sudo apt install nodejs
Reading package lists… Done
Building dependency tree… Done
Reading state information… Done
The following package was automatically installed and is no longer required:
libnuma1
Use ‘sudo apt autoremove’ to remove it.
The following additional packages will be installed:
javascript-common libc-ares2 libjs-highlight.js libnode72 nodejs-doc
Suggested packages:
npm
The following NEW packages will be insta
CKEditor5の開発環境を構築する
– CKEditor5の開発環境を構築する
“`bash
$ git clone -b stable https://github.com/ckeditor/ckeditor5
$ cd ckeditor5/packages/ckeditor5-build-classic
$ npm install
$ yarn run build# 動作確認用にHTTPサーバを立ち上げる
# ※ インストールされていない場合はインストール
# npm install http-server -g
$ cd sample
$ http-server
“`
– 日本語化する
– ckeditor5/packages/ckeditor5-build-classic/webpack.config.js
“`diff
plugins: [
new CKEditorTranslationsPlugin( {
// UI language. Language codes follow the https://en.wikipedia.org/wiki/ISO_639-1 format
tiny sqlite3 + node + sqlite_web
#tiny sqlite sample
## node + sqlite3
– create workspace“`bash
mkdir your-directory-id
cd your-directory-id
npm init -y
touch index.js
“`
– install npm package [sqlite3]
“`bash
npm install sqlite3
“`– copy code to index.js
“`javascript
const sqlite3 = require(“sqlite3”);
const db = new sqlite3.Database(“./somedb.db”);db.serialize(() => {
db.run(“drop table if exists sometable”);
db.run(“create table if not exists sometable(id,number)”);
db.run(“insert int
期待の新星@clack/promptsで作る対話型CLI
## 概要
2023/2/13に[@clack/prompts](https://github.com/natemoo-re/clack/tree/main/packages/prompts#readme)がリリースされました。
Build beautiful command-line apps in minutes with `@clack/prompts` ?
? Only 4 kB gzip (80% smaller than `prompts`)
? Beautiful, minimal UI
✅ Simple API
? Comes with text, confirm, select, and spinner pic.twitter.com/lLRIOWm1Lx— Nate Moore (@n_moore) February 13, 2023
筆者は今まで対話型CLIで有名な[prompts](https://www.npmjs.com/package/prompts)を使ってきましたが、@clack/promptsは評判も上々(1.9k Stars)なので実際に触ってみたいと思います。
## @clack/promptsとは
– 対話型CLIを作るためのAPI
– [prompts](https://www.npmjs.com/package/prompts)より機能は少ないが **80%** 小さいサイズ
– UIが少し**カッコいい**✨## できること
– テキスト入力
– テキストのバリデーション
– 確認分岐
– 単一選択
– 複数選択
– スピナーの表示
– イント
CommonJSとESModuleの設定ミスでSlackアプリを実行できなかった話
`@slack/bolt`と`chatgpt`を組み合わせて、Slackアプリを開発しようとしていた。
https://github.com/transitive-bullshit/chatgpt-api
このときの**tsconfig.json**では、`module`は`CommonJS`を示していて、`target`は`ES2017`を指していた。
“`tsconfig.json
{
“compilerOptions”: {
“module”: “CommonJS”,
“target”: “ES2017”,
…
},
…
}
“`そして、`tsc`を使って**src/index.ts**のビルドを行い、`node`を使って生成された**build/index.js**を実行しようとした。
ビルドは通ったものの、`node`での実行に失敗した。
“`shell
> tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json/Users/takag
Node.jsではmysqlよりmysql2を使うべき理由
mysql2が一番Weeklyダウンロードが多い
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3127414/1b2a339a-a99a-6b47-34ec-8c622bda733d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3127414/2528898b-49d3-bac5-ea35-63214f68e3e5.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3127414/06c341f9-d4c0-3b60-30ea-c5d874181d50.png)
[初心者向け] Cacheを使ったNode.jsのパッケージのインストールの方法と仕組みについて徹底解説
## 概要
Node.jsの必要なパッケージをインストールする際はワークフローを実行するたびに新しいrunnerを使用する関係でパッケージを1からインストールします
パッケージが少ないうちはいいものの、プロジェクトが大きくなるにつれてパッケージが多くなるとパッケージのインストール時間分ワークフローの実行時間が長くなってしまいます
そこでパッケージをインストールする際はCacheを使うとパッケージがどんなに多くてもインストール作業を数秒以内に終わらせることができます
今回はGitHubの公式で公開されている
– actions/cache
– actions/setup-nodeについて解説していきます
## actions/cache
公式が出しているActionで今回使用するNode.js以外の言語やDockerのCacheも扱うことができます
詳細は以下の公式ドキュメントに記載されていますhttps://github.com/actions/cache
以下を例に説明します
“`yml
– name: Cache dependencies
MongoDBのコネクションプールがわからなかったので調査
恥ずかしながらMongoDBなどNoSQL系は業務経験がなく、最近勉強中の身です。
[Express+Typescriptプロジェクトのひな形をささっと作る](https://qiita.com/tomoyanp/items/8f039493570c7d29ae86)で作成したExpressからMongoDBに接続する形でやってます。MongoDB公式のドライバを使用してますが、dbの接続部分は下記のような記述をよく見かけます。
“`javascript
MongoClient.connect(‘mongodb://localhost:27017/db’, (err, db) => {
db.collection(‘mycollection’).insertOne(xxxxxx);
db.close();
})
“`シンプルに、毎回connectしてcloseするの???コネクションプールとかないの???となったので実機で試してみた記事です。
なんとなく調べていると、MongoClientにプール数を指定することは可能で、connectメソッドを呼んでも毎回接続して
Cloudflare Pagesでデプロイ時のNode.jsバージョンを指定する
# はじめに
:::note info
この記事で記載するバージョンは執筆当時のものです。参考にする場合は参照を辿って差分を吸収してください。
:::Cloudflare Pagesではデフォルトでバージョン12.18.10のNode.jsを利用してビルドコマンドの実行を行います([参照](https://developers.cloudflare.com/pages/platform/build-configuration/#language-support-and-tools))。
最近のフレームワークやビルドツールではこのバージョンで動かすことが出来ないことが多いです。例えばAstroはバージョン16.13.0以上が必要ですし、Viteでもバージョン14.18、16以上が必要となっています([参照1](https://docs.astro.build/en/install/auto/#prerequisites)、[参照2](https://ja.vitejs.dev/guide/#%E6%9C%80%E5%88%9D%E3%81%AE-vite-%E3%83%95%E3%8
yarnのインストール方法
### 問題
– `yarn run build`でエラーになる。
“`bash
$ yarn run build
00h00m00s 0/0: : ERROR: [Errno 2] No such file or directory: ‘run’
“`### 解決策
– yarnのバージョンが古いだけ。
– 最新のyarnをインストールすればよい。
“`bash
# 古いyarnを削除
$ sudo apt remove yarn
$ sudo apt remove cmdtest
$ sudo apt autoremove# 最新のyarnをインストール
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add –
echo “deb https://dl.yarnpkg.com/debian/ stable main” | sudo tee /etc/apt/sources.list.d/ya
Ubuntu 22.04.1 LTS にnpmとnodeをインストールする方法
### 問題
– 色々なインストール方法が散見されるが、インストール後`npm -v`コマンドを打っただけでエラーになったりする。### 解決策
– 素直に [公式](https://github.com/nodesource/distributions/blob/master/README.md#rpminstall) に書いてあるコマンドでインストールをすればいい。
“`bash
curl -fsSL https://deb.nodesource.com/setup_19.x | sudo -E bash – &&\
sudo apt-get install -y nodejs
“`以上。
(無料)Twitter API v2 を用いたブックマークの取得
# (無料)Twitter API v2 を用いたブックマークの取得
## はじめに
Twitter API v2 を用いて、自分のブックマークの棚卸しシステムを作りました。
データは、NeDB を使って保存しています。
OAuth2 については今回必要なんですが、本旨とは関係ないので割愛します。パッケージとして、[twitte-api-v2](https://www.npmjs.com/package/twitter-api-v2)を利用します。
今回はベアラートークンを利用していて、ユーザーごとの読み取りには制限がかからないので、無料枠の API でも利用できます。
## パッケージ
nedb-promises は、NeDB の Promise 対応版のスーパーセットです。
![パッケージ構造](https://cdn.discordapp.com/attachments/1068315061099175966/1074909289103228958/npmlist.png)## レートリミットについて
Twitter API では、各 API エンドポイントに
Ubuntu 22.04にMongoDB 6.0とfree5GC WebUIをインストールする
本記事は、2023.01.26にリリースされたMongoDB 6.0.4がUbuntu 22.04に対応したことを受けて、Ubuntu 22.04にMongoDB 6.0とfree5GC WebUIをインストールする手順を簡単に説明します。
—
## 目次
– [MongoDB 6.0インストール](#mongodb-60インストール)
– [Ubuntu 20.04の場合](#ubuntu-2004の場合)
– [Ubuntu 22.04の場合](#ubuntu-2204の場合)
– [free5GC WebUIインストール](#free5gc-webuiインストール)
– [Ubuntu 20.04の場合](#ubuntu–2004の場合)
– [Ubuntu 22.04の場合](#ubuntu–2204の場合)
– [最後に](#最後に)
– [主な変更履歴](#主な変更履歴)—
## MongoDB 6.0インストール
Ubuntu 22.04では、`apt-key`が非推奨になり、`gpg`を使用します。そこで、この差異をインストール
Ubuntu 22.04にMongoDB 6.0とOpen5GS WebUIをインストールする
本記事は、2023.01.26にリリースされたMongoDB 6.0.4がUbuntu 22.04に対応したことを受けて、Ubuntu 22.04にMongoDB 6.0とOpen5GS WebUIをインストールする手順を簡単に説明します。
—
## 目次
– [MongoDB 6.0インストール](#mongodb-60インストール)
– [Ubuntu 20.04の場合](#ubuntu-2004の場合)
– [Ubuntu 22.04の場合](#ubuntu-2204の場合)
– [Open5GS WebUIインストール](#open5gs-webuiインストール)
– [最後に](#最後に)
– [主な変更履歴](#主な変更履歴)—
## MongoDB 6.0インストール
Ubuntu 22.04では、`apt-key`が非推奨になり、`gpg`を使用します。そこで、この差異をインストール手順で示します。
### Ubuntu 20.04の場合
“`
# apt update
# apt install wget gnupg softwar
GitHub Actionsでメタデータファイル(action.yml)を作成してワークフローを共通化しよう!
## 概要
複数以上のワークフローを実行する際に
– パッケージのインストール
– Cacheの設定など、複数のワークフローで共通で使用できるものを1つのファイルにまとめる方法について解説していきたいと思います
今回はNode.js関連の設定を共通化してテストをビルドを実行します作成するファイルの構成は以下の通りです
“`
tree
└──.github
├── actions
│ └── set-up-node
| └── action.yml
└── workflows
├── build.yml
└── jest.yml
“`## メタデータファイル
GitHub Actionsではメタデータファイルというファイルに共通の処理を記載することができます
その際はaction.ymlファイルを作成し、記載しますhttps://docs.github.com/ja/actions/creating-actions/metadata-syntax-for-github-actions
Windows10のNode.js環境でVue3 + Vuetify3 + TypeScript構成のアプリケーションを開発できるようにする
# 本記事の内容
– Windows10のWSL(Ubuntu)を利用してNode.js環境を用意し、Vue3 + Vuetify3 + TypeScript構成のアプリケーションを開発出来るように開発環境を構築します。# 実施環境
– Windows 10
– VSCode
– WSL2
– Ubuntu 22.04
– Vue3
– VUuetify3
– TypeScript# 実施した作業
1. WindowsにNode.js環境を構築する
2. Yarnコマンドをインストールする
3. Vuetify3のサンプルPJ(Vue3 + Vuetify3 + TypeScript)をインストールし起動する## 1.WindowsにNode.js環境を構築する
本記事の前提条件として、Windows10にWSL(Ubuntu)がインストールされている状態からスタートするので、WSL(Ubuntu)を未インストールの場合は、こちらの記事「[Windows10でWSL2を利用したUbuntu環境構築時にエラー](https://qiita.com/kanamekun/ite
オンラインRPG「REDSTONE」(赤石)をウェブ移植してみた
#### REDSTONE(レッドストーン)という懐かしのMMORPGをウェブでプレイできるようにしてみた話
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/576748/b252e6f7-490d-6eb7-e66b-d046fdd84b8b.png)
(移植できたのはまだ一部です)![rs-web-showcase.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/576748/21a018fe-2b9b-8d7e-84ba-4fadcd6b8819.gif)
## ブラウザでプレイできるデモ公開
とりあえず、**触ってみてもらうのが一番**なのでデモを置いておきます!
(ブラウザで開くだけでDLとか不要です)#### Demo:https://rs.sigr.io/
https://rs.sigr.io/
—–
プロジェクトのソースコードも全部公開してます
#### Github