- 1. やりたかったこと
- 2. 起きた問題
- 3. やったこと
- 4. 例
- 4.0.1. license-checkerでnpmの依存ライブラリのライセンスを確認する
- 4.0.2. Node.jsとnpmをインストールするのに無駄に苦労した話
- 4.0.3. ESLintをディレクトリ以下にインストールして使用する
- 4.0.4. Windows PCにReact開発用の環境作成
- 4.0.5. Dockerを使用せずにReact(Next.js)+TypeScriptの環境を構築する手順
- 4.0.6. AWS IoT Coreを使ってみた
- 4.0.7. Node.jsで新規プロジェクト作成する
- 4.0.8. Node.jsでAmazon Rekognitionを手っ取り早く試す(結果はnode-canvasで画像に描画)
- 4.0.9. 「use “resolutions” to ensure only one version is installed.」←これに従っても解決できない場合
- 4.0.10. 【エラー解決】ERROR in Entry module not found: Error: Can’t resolve ‘./src’
- 4.0.11. node.jsでAPIサーバみたいなものを作ってみる
- 4.0.12. Node.jsはnvmを通してインストールすべきである
- 4.0.13. discord.js でスラッシュコマンド(Slash commands)を使う
- 4.0.14. Denoとはなんなのか今更ながらちょっとお触りしてみた
- 4.0.15. 私のオープンソースプロジェクトがユーザー自身からどのように投資を得たか!
- 4.0.16. Watson Discovery便利プログラム ~Export編~
- 4.0.17. AzureStorage[FileShare]をNodejsから操作する(ダウンロード)
- 4.0.18. 10年後を見据えて、小規模開発からdenoを使ってみませんか?
AWS CDKのaws-lambda-nodejsで”Error: spawnSync docker ENOENT”が出るとき
# 問題
Lambda関数をTypeScriptで書くために`aws-lambda-nodejs`を使おうとしたら、下記のエラーが出た。“`sh
Error: spawnSync docker ENOENT
at Object.spawnSync (node:internal/child_process:1083:20)
at Object.spawnSync (node:child_process:812:24)
at dockerExec
…
“`# 解決策
実行環境がmacOSの場合は、ビルドモジュールである`esbuild`を手動でインストールするのが良いらしい。“`
$ npm install –save-dev esbuild@0
“`
or“`
$ yarn add –dev esbuild@0
“`# 参照
https://docs.aws.amazon.com/cdk/api/latest/docs/aws-lambda-nodejs-readme.html#local-bundling
ESMで書かれたNodejsでrequireが使えない
やりたかったこと
・毎回コマンドラインでログイントークンを生成→コピーしてcURLで送るのが面倒だったから一回の操作で行いたい。
・ES Moduleで書かれたログイントークンを生成するNodejsプログラムを使ってHTTP requestをおくる起きた問題
・ESMで書かれたNodejsプログラムではrequireが使えないためいつもの記法でのhttp requestが送れない
→いっそシェルスクリプトを使ってCURLコマンドでリクエストを送る
・シェルスクリプトの使い方がよくわからないやったこと
Nodejsの結果を変数に入れてCURLコマンドへ入力
例
フォルダ構成
index.mjs ←ログイントークンを生成するプログラム
do.sh ←今回作ったシェルスクリプト“` bash:do.sh
#! /bin/sh
IDTOKEN=`node index.mjs`
echo $IDTOKEN
curl “http://yourURL” \
-H Authorization:” $IDT
license-checkerでnpmの依存ライブラリのライセンスを確認する
みなさんは日々の開発でライブラリなどを利用する際に、きちんとライセンスを確認していますか?
OSS(に限らないですが)を利用する際には、ライセンスに従う必要があります。
ライセンスによっては著作権表示を求められたり、それらを組み込んだソースコードもまた公開しなければならないものもあります。今回は[license-checker](https://www.npmjs.com/package/license-checker)を用いて、Node.jsプロジェクト内で利用しているパッケージのライセンスを確認してみたいと思います。
## license-checkerを使ってみる
license-checker
https://www.npmjs.com/package/license-checkerツールなのでグローバルにインストールしてもいいと思いますが、個人的には`devDependencies`に足したほうがチームで共有できたりCIなどでも利用できるのでよいかと思います。[^1]
ここでは適当に作った空プロジェクトで試してみましょう。
`license-checker`も
Node.jsとnpmをインストールするのに無駄に苦労した話
どうも、Sorakimeです。
僕はよく[Electron](https://electronjs.org)を使ってソフトウェアの開発をしています。久しぶりにメインPCでデュアルブートしていた[elementary OS](https://elementary.io)でやろうかな〜ってことで環境を整えていたのですが、まぁ無駄に苦労したのでそれに関することを書いたので読んでくれると嬉しいです。# 普通にインストール
まずは普通にインストールします。“`bash
$ sudo apt install node
“`aptから落としてきます。
場合によっては`$ sudo apt install npm`もしないといけないかもしれないです。で、一応インストルできてるか確認。バージョンが返ってきたらOK。
“`bash
$ node -v
$ npm -v
“`## バージョン古くね?
僕の環境では確かnodeが6くらい、npmが3.1くらいだったかと思います。
これ、とても古いです。現行最新安定版が各14.18.0と6.14.8だったとおもいます。
じゃぁ当然ア
ESLintをディレクトリ以下にインストールして使用する
# 概要
– nodeJSをインストールしてからESLineを使用できるようになるまでの設定方法
– ESLineはグローバルにインストールするのではなく作業ディレクトリ以下にインストールする# 環境
– macOS Big Sur
– node 14.18.0
– npm 6.14.15# 設定方法
## ディレクトリの準備“`
$ mkdir node_test
$ cd node_test
“`## package.json を作成する
– npm init して適宜設定していく“`
$ npm init
“`## ESLint のインストール
– eslint の本体は作業環境にインストールする ( -D | –save-dev )
– `node_modules/.bin/eslint` にリンクが生成される
– 実体は `node_modules/eslint/bin/eslint.js` にインストールされる“`
$ npm install eslint –save-dev
“`## ESLint の設定をする
– 対話形式
Windows PCにReact開発用の環境作成
Reactの勉強のためWindows PCに環境作成する。
※2021/10/3時点で作成中。勉強都度更新予定。# Chocolateyのインストール
ライブラリのバージョン管理。MacのHomebrewのようなもの。
– [公式サイト](https://chocolatey.org/)
– [インストール方法](https://chocolatey.org/install)
【注】インストールでPowershellを使用するが、管理者権限で起動すること。# Nodistのインストール
上でインストールしたChocolateyを使ってNode.jsのバージョン管理をインストールする。
– [公式サイト](https://github.com/nullivex/nodist)
【注】インストールでPowershell等を使用するが、管理者権限で起動すること。“`bash
$ choco install nodist
“`# Node.jsのインストール
Node.jsをインストールする。バージョンは記事作成時の最新版 16.10.0。“`bash
# バ
Dockerを使用せずにReact(Next.js)+TypeScriptの環境を構築する手順
#なぜこの記事を書いたのか
React(Next.js)とTypeScriptは相性が良いといわれており、この二つを組み合わせて開発する人も多いため、環境構築する方法を記事としてまとめておきたかった。ただし、今回はDockerなしでの構築とする。
#環境構築完了(ゴール)の確認
この記事のゴールは以下のようにReact(Next.js)のページが起動すること。
![スクリーンショット 2021-10-02 16.34.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/758310/0a3e8b26-a7cb-a866-db37-a2fc203b88db.png)
#環境構築の手順
##1.React(Next.js)アプリ作成
まずはターミナルを起動してプロジェクトフォルダを作成したいディレクトリへ移動する。今回は「next-ts-redux」という名前のフォルダを作成し、その直下に「app1」という名前のプロジェクトフォルダを作成することにする。
以下のコマンドを実行する。
“`
AWS IoT Coreを使ってみた
# はじめに
> 初めてawsに触れるため、まずはインターネットに接続されたIoTデバイスの接続、管理できるAws IoT Coreというサービスを使ってみようと思う
Azure IoT Hubサービスに似ているものかな?# 使用したもの
– RaspberryPi 3B+
– DHT22温湿度センサー
– Aws IoT Core
– node.js# AWS設定
# ポリシーの作成
1) AWSマネージメントコンソールにログイン
[マネージメントコンソールにログイン](https://aws.amazon.com/jp/console/)![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/533263/906e24e3-b0a0-0f6f-dcbc-d56751f1760b.png)
2) 画面上の検索で「**IoT Core**」と検索し、IoT Coreを選択
![image.png](https://qiita-image-store.s3.ap-north
Node.jsで新規プロジェクト作成する
# 新規プロジェクトを開始する
npm コマンドを使って開始。“`
npm init
“`
こちらのコマンドを使って package.json を作成。“`
package name: “my-node-app”
version: (1.0.0)
description:
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)
“`name: パッケージ名
version: バージョン
description: プロジェクトの簡単な説明
entry point: index.js
test command: プロジェクトのテストに使用するコマンド
git repository: プロジェクトをオープンソースにする場合、 ユーザー名/プロジェクト名 と記述する
keywords: パブリックnpmレジストリにプロジェクトを公開したい場合には必要
author: 作者の名前、または会社名を入力する
license: (ISC) プロ
Node.jsでAmazon Rekognitionを手っ取り早く試す(結果はnode-canvasで画像に描画)
# はじめに
AmazonのRekognitionで動作確認をしてみました。
公式サイトのドキュメントやGitHubのサンプルを見てもサーバーレスで格好良く(?)試すやり方が記載されていましたが、そこまでリソース(私やらAWSやらの)を使いたくなかったので極力シンプルにサクッと試せる方法を調べ実装&動作確認をしてみました。# やりたいこと
* Amazon Rekognitionの動作確認。
* S3とかLambdaを駆使しない。(簡単にサクッと)
* 手元にある画像ファイルをそのまま入力ファイルとして使いたい。
* 解析結果を入力データとして使った画像に描画して分かりやすく。# 事前に必要なこと
### nodeの最新化
諸事情でnodeは8.17.0を利用していましたが、canvasに新しいバージョンを要求されたので、14.15.3に切り替えました。### 専用のIAMユーザーを作成し、AWS SDKやAWS CLIで利用できるような状態にしておく
ソース内の”rekognition-dev”がその設定を行ったprofile名です。AWS SDKのセットア
「use “resolutions” to ensure only one version is installed.」←これに従っても解決できない場合
下記のようなエラーがでたため、package.jsonに`resolutions:{}`追記したけど解決しなくて頭抱えてたけど、`NODE_ENV=staging`を消したら直った。
こんな事する人あんまいないと思うけど、全然ググっても出てこなかったのでメモ。“`
vendor.js?61b0eac928c8c8d9443a:65 Uncaught Error: Cannot use e “__Schema” from another module or realm.Ensure that there is only one instance of “graphql” in the node_modules
directory. If different versions of “graphql” are the dependencies of other
relied on modules, use “resolutions” to ensure only one version is installed.
“`
【エラー解決】ERROR in Entry module not found: Error: Can’t resolve ‘./src’
アプリ開発をしている中で、`yarn start`をしても下記のようなエラーが発生して`yarn start`ができなくなったので、解決法を探しました。
“`
ERROR in Entry module not found: Error: Can’t resolve ‘./src’
“`# package.json
何かあれこれいじってるうちに、package.jsonのscripts部分を下記のように変更してしまっていました。“`
“scripts”: {
“start”: “webpack-dev-server –content-base src –mode development –inline”,
},
“`なので、[こちら](https://qiita.com/Yuki-k-lion/items/21e8f68489a6b1ca5565)の記事を参考に、
“`
“start”: “react-scripts start”,
“`このように戻し、`yarn start`すると、ターミナル上に「バグを直すためにこれこれや
node.jsでAPIサーバみたいなものを作ってみる
# 動作確認用にデータベースを準備する
dockerをつかう。
データベース用にフォルダを作って、そのなかにdocker-compose.ymlをおく。
“`database/docker-compose.yml
services:
db:
image: postgres:13
container_name: postgresql
ports:
– 5432:5432
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_INITDB_ARGS: “–encoding=UTF-8 –no-locale”
volumes:
– ./pgdata:/var/lib/postgresql/data
– ./pginit:/docker-entrypoin
Node.jsはnvmを通してインストールすべきである
# はじめに
Node.jsの学習を始めたので、備忘録として残しておく。
### 参考
# Node.js を学ぶに至った経緯
– Webアプリケーションを作成する際の、Webサーバー構築として使用したかった。– 現在学習しているJavaScriptと並行して学習できそうだった。
# Node.js をインストールする
#### 「Node.js」で検索してダウンロードするのは非推奨
[理由は主に2つ]– アクセス許可の問題が面倒
– アップデートが面倒 ( 更新のたびに再インストールの必要がある )
#### まずは、nvm ( ノードバージョンマネージャー ) をインストール
[メリット]
– バージョンの切り替えや更新が楽
> https://github.com/nvm-sh/nvm
“`
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
“`上記のGitHub
discord.js でスラッシュコマンド(Slash commands)を使う
# はじめに
今まで私は Python で discord.py というライブラリを使って Discord Bot を開発していたのですが discord.py の開発が終了してしまったためもう一つの有名なライブラリである discord.js を使ってみようと思い、今まで触ってこなかった Node.js を勉強しはじめました。そして discord.js はスラッシュコマンドに対応しているということで、これで色々遊んでみようと思います。
## 前提
– 基本的な JavaScript の文法を知っている
– discord.js を少しでも触ったことがある
– Node.js の環境がある
– Discord の Bot のトークンを持っている## 著者の環境
– macOS Big Sur 11.5.2
– Node.js v16.10.0
– discord.js v13.1.0**スラッシュコマンドを使うには discord.js v13 以上が必要です。そしてそれには Node.js v16 以上が必要です。**
# 本題
## スラッシュコマンドの登録
Denoとはなんなのか今更ながらちょっとお触りしてみた
# はじめに
v1.0.0 が出てからだいぶ月日が経ってしまいましたが、今更ながらちょっとお触りしてみました。
## Denoってなんなん?
`Deno` は、V8 JavaScript エンジンを使用した Rust 製の JavaScript および TypeScript 用のシンプルでモダンで安全なランタイムです!
って[公式](https://deno.land/)が謳っています?## なんでDeno作ったん?
`Deno` は JSConf EU 2018 での Ryan Dahl 氏による講演「[Node.js に関する 10 の反省点](https://www.youtube.com/watch?v=M3BM9TB-8yA)」で発表されました。
その講演にて、Node.js の初期設計における後悔している点をいくつか挙げています。* API の設計おいて非同期処理に使う promise を使用しないという選択をしたこと
* 古い GYP ビルドシステムを使用するようにしたこと
* パッケージ管理において設定ファイルの package.json と node_m
私のオープンソースプロジェクトがユーザー自身からどのように投資を得たか!
それを認めましょう、財政的に支援を見つけることになると、オープンソースは圧倒される可能性があります。
今日は、何年にもわたって進化し、ユーザー自身から小さなエンジェル投資を得たオープンソースプロジェクトのありそうもない旅を共有したいと思います。
# ? プロジェクトの歴史の一部
[NocoDB](https://github.com/nocodb/nocodb)は私のオープンソースプロジェクトであり、オープンソースのAirtableの代替プロジェクトです。
以前のアバターでは、NocoDBはXmysqlとして知られていました。
– Xmysqlは、HackerNewsに最初に投稿された趣味のプロジェクトでした。 MySQLデータベース上にインスタントRESTAPIを作成しました。多くの人が本番環境で使用し始めましたが、本番環境では準備ができていなかったため、最終的にはこのフルタイムで作業することになりました。
– 時間の経過とともに、デスクトップアプリとともに、さらにいくつかのデータベース上にインスタントAPIを作成するように進化しました。多くの顧客と話をした後、私はNo
Watson Discovery便利プログラム ~Export編~
# コレクション内の情報をエクスポートする
collectionの内容をエクスポートしてほかのコレクションに適用したりコレクションの情報を別で保存しておきたいときがあると思います。(私があったので記事を書いているのですが…)
ということで、コレクションの情報をエクスポートするプログラムをTypescriptで作りました。
エクスポートする情報は以下です。– コンフィグ
– ドキュメント
– トレーニングデータ
– エクスパンション(同義語)ソースは[git](https://github.com/Ryota-Amano/ibmcloud-discovery-export)にあります。
Qiitaの記事ではプログラムの仕様や概要を説明します。利用方法はgitをご覧ください。
**ご利用は自己責任でお願いいたします。**
改善点や不明点等ございましたら連絡いただけますと嬉しいです。# 環境
– Windows10
– Node v14.17.0
– npm 7.15.1# 仕様
– 資格情報はプログラム実行前に`Authentication.yaml`に記載しておく
–
AzureStorage[FileShare]をNodejsから操作する(ダウンロード)
# 初めに
前回書いた[AzureStorageBlobのダウンロード](https://qiita.com/RyotaAmano/items/7b36fbbce016c5905318)のFileShare版です。AzureのクラウドストレージであるAzureStorageFileShare。
そのFile共有サービスの中にある全てのファイルをローカル環境に一括ダウンロードするためのプログラム(TypeScript)を紹介します。# 環境
* Node v14.17.0
* Windows10
* Typescript# コード
1ファイルで紹介したかったため1ファイルにすべて詰め込んでありますが、
適宜管理しやすいようにファイルを分けたほうがいいと思います。
## package.json
前回と同じため割愛。
見たい方は前回の記事に書いてあるため、そちらをご確認ください。## メインファイル
“`index.ts
import fs from ‘fs’
import path from ‘path’;
import { ShareServiceClient }
10年後を見据えて、小規模開発からdenoを使ってみませんか?
## 概要
ロゴがかわいいね
[deno](https://deno.land/)とは現代のJavaScript, TypeScriptランタイムである!
どんなところが現代的かというと、node.jsと比べて以下のような特徴があります。– デフォルトでセキュリティが保護されている。明示的に有効にしない限りはファイルやネットワーク、実験的機能にアクセスできない。
– TypeScriptをサポート。
– コードフォーマッターやテストランナーといった組み込みユーティリティ。
– 動作保証された標準ライブラリ。※[こちらの記事](https://qiita.com/yoshii0110/items/8f13012e9f732b1cfd4c#deno%E3%82%92%E5%AE%9F%E8%A1%8C)が非常に詳しく説明してくれているのでオススメです
## denoはもう「使える」ツールだ
ここからが本編です。denoは歴史が浅く、なんとなく「まだ実用的ではないかな」「nodeでい