`npm list`で表示される”extraneous”

表題の件、なんだっけ?となったのでメモしておく。

■ 環境

  • node 4.4.7
  • nodebrew
  • Mac OSX El Capitan

■ `npm list`

実行すると下記のように表示されるのと”ERR“が出ている。久しぶりに見かけて、何でだっけ?となったので確認する。

$ npm list
  :
└── XXXXXXXX@0.2.1 extraneous

npm ERR! extraneous: XXXXXXXX@0.2.1 /Users/withsin/project/node_modules/XXXXXXXX
$

extraneous“は、直訳すると”外来“とか。このパッケージがちゃんと管理されていない、ということか。確かにインストール時に下記のように実行していなかった。

$ npm install --save XXXXXXXX

この為、`package.json`の`dependencies`に追加されずに上記のように外来パッケージと表示されているようだ。また”ERR“の内容も同じである。というわけで再度`–save`付きでインストールしたところ、前述のような表記や”ERR“は表示されなくなった。

以上。

AlpineLinuxでnode

表題の通り。「nodeの公式のコンテナがDebianで、、」というのも見かけて、Alpineでもあるんじゃない?と思ったので確認する。

■ 環境

  • Docker for Mac 1.12.3
  • Mac OSX El Capitan

■ Docker Hub

library/node
https://hub.docker.com/r/library/node/

ここの”Tags“から見ると、”alpine“とついているコンテナも存在する。

■ Alpine Linux

コンテナを起動してパッケージを検索してみる。

$ docker run -ti --rm alpine sh
/ # 
/ # apk update
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.4/community/x86_64/APKINDEX.tar.gz
v3.4.6-9-g93fc63d [http://dl-cdn.alpinelinux.org/alpine/v3.4/main]
v3.4.6-5-g027d8ce [http://dl-cdn.alpinelinux.org/alpine/v3.4/community]
OK: 5975 distinct packages available
/ #
/ # apk search node
nodejs-lts-4.6.0-r0
nodejs-lts-doc-4.6.0-r0
perl-tree-dag_node-1.29-r0
nodejs-lts-dev-4.6.0-r0
sngtc_client-1.3.7-r1
nodejs-dev-6.7.0-r0
nodejs-doc-6.7.0-r0
nodejs-6.7.0-r0
perl-tree-dag_node-doc-1.29-r0
/ #

ありそうである。

以上。

Markdownで書かれたテキストをPDFに変換

表題の通り。

■ 環境

  • markdown-pdf 7.0.0
  • node 4.4.7
  • Mac OSX ElCapitan

■ markdown-pdf

`markdown-pdf`なるものがあるようなのでインストールしてみた。

$ npm install -g

適当なMarkdown記法で書かれたファイルを早速やってみる。

$ markdown-pdf -o test.pdf test.md
(node) warning: possible EventEmitter memory leak detected. 2 end listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
    at SeriesStream.addListener (events.js:239:17)
    at SeriesStream.Readable.on (_stream_readable.js:680:33)
    at SeriesStream.on (/usr/local/var/nodebrew/node/v4.4.7/lib/node_modules/markdown-pdf/node_modules/stream-from-to/node_modules/series-stream/index.js:12:38)
    at SeriesStream.once (events.js:265:8)
    at SeriesStream.Readable.pipe (_stream_readable.js:486:9)
    at SeriesStream.pipe (/usr/local/var/nodebrew/node/v4.4.7/lib/node_modules/markdown-pdf/node_modules/stream-from-to/node_modules/series-stream/index.js:22:30)
    at /usr/local/var/nodebrew/node/v4.4.7/lib/node_modules/markdown-pdf/node_modules/stream-from-to/index.js:101:25
    at /usr/local/var/nodebrew/node/v4.4.7/lib/node_modules/markdown-pdf/node_modules/stream-from-to/node_modules/mkdirp/index.js:48:26
    at FSReqWrap.oncomplete (fs.js:82:15)
$

memory leak“とか表示されているが、とりあえず実行はできているようなのでPDFを確認してみると、まぁまぁ満足な結果。

以上。

nodebrewを新規で入れた時の問題?

Macにおいて表題の件。

■ 環境

  • nodebrew
  • Homebrew
  • Mac OSX El Capitan

■ nodebrew

新規Macでの環境構築中、`nodebrew`を使いたくてインストールしたのだが実際に`node`をインストールする時点で躓いてしまった。

まずは`nodebrew`をインストール。

$ brew install nodebrew
  :
==> Caveats
Add path:
  export PATH=$HOME/.nodebrew/current/bin:$PATH

To use Homebrew's directories rather than ~/.nodebrew add to your profile:
  export NODEBREW_ROOT=/usr/local/var/nodebrew

Bash completion has been installed to:
  /usr/local/etc/bash_completion.d

zsh completion has been installed to:
  /usr/local/share/zsh/site-functions
$

今回は`NODEBREW_ROOT`を設定してホームディレクトリ配下ではなく`/usr/local`配下に配置しようと`.bashrc`に下記のように設定した。

$ cat .bashrc
  :
# nodebrew
export NODEBREW_ROOT=/usr/local/var/nodebrew
export PATH=${NODEBREW_ROOT}/current/bin:$PATH
$

実際に`node`をインストールしようとしたところ下記のように。ちなみにversionはLTSである”v4.4.7“にした。

$ nodebrew install v4.4.7
Fetching: https://nodejs.org/dist/v4.4.7/node-v4.4.7.tar.gz
Warning: Failed to create the file
Warning: /usr/local/var/nodebrew/src/v4.4.7/node-v4.4.7.tar.gz: No such file
Warning: or directory

curl: (23) Failed writing body (0 != 666)
download failed: https://nodejs.org/dist/v4.4.7/node-v4.4.7.tar.gz
$

ディレクトリを先に作成しなければならないようだ。

$ mkdir /usr/local/var/nodebrew

このディレクトリを作成後に再度実行したものの同じエラーが発生。さらにもう一段階ディレクトリを作成。最終的には下記を実行すれば問題なさそうであった。

$ mkdir -p /usr/local/var/nodebrew/src

と思っていたら…以前にも同じようにはまっていたようである。

nodebrewで初回使用時にエラー

以上。

■ 関連

npm bin

表題のコマンドを知らなかったのでメモ。

■ 環境

  • npm 3.3.12
  • node 5.5.0
  • Homebrew
  • Mac OSX El Capitan

■ npm bin

バイナリがインストールされるディレクトリを取得することができる。

$ npm bin -g
/Users/withsin/.nodebrew/node/v5.5.0/bin
(not in PATH env variable)
$

試しに環境変数”PATH“に入れて実行してみる。

$ export PATH=${PATH}:`npm bin -g`
(not in PATH env variable)
#
$ npm bin -g
/Users/withsin/.nodebrew/node/v5.5.0/bin
$

ちなみに、自身の環境では`nodebrew`を使用しているため、”PATH“は別の場所に通っているのでわざわざ上記ディレクトリに”PATH“を通す必要はない。

以上。