`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“は表示されなくなった。

以上。

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を確認してみると、まぁまぁ満足な結果。

以上。

GitBook

表題を試してみる。ドキュメントを書くのに良いものがないかといろいろ試しているシリーズ。

■ 環境

  • Webサービス

■ GitBook

gitbook-001

https://www.gitbook.com/

ローカルでもできるようであるが、機能を把握したいのでとりあえずWebページでやってみる。

■ 登録

GitHub OAuthでログインした。

gitbook-002

この時点ではまだ何もないので”Create or Import your first book“から作成する。タイトルはとりあえず”my first book“。その他はデフォルトままとDescriptionは適当に。

gitbook-003

作成された。”Edit your book“から編集画面に。

gitbook-004

その場で編集が可能となる。

gitbook-005

保存する毎に`git commit`されているようである。トップページにも本が追加された。

gitbook-006

今回はWebサービスとしてのGitBookを 利用してみたが、無料では非公開の本は作成できないようである。公開しても問題ないものしか書けそうにない。GitHubのレポジトリからもインポートが可能とのことなので連携もできそうだ。

以上。

■ 関連

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“を通す必要はない。

以上。

Node 5.5.0 on Docker

表題の通り。先日は`nodebrew`を使ってローカルのMacに`node`を使える環境にしたが、最近はDocker上で`node`のコンテナを上げる事の方が多かったりする。

■ 環境

  • Node 5.5.0
  • Docker 1.10.0
  • Docker Machine 0.6.0

■ コンテナ取得

コンテナを`pull`する。DockerHubを確認すると、”5.5.0“が最新のようである。”latest“タグも同じ”5.5.0“に付いているようなのでタグは指定しないで取得することにした。

$ docker pull node

取得後は下記の通り。

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
node                latest              baa18fdeb577        13 days ago         643 MB
$

■ コンテナ起動

node関連のプロジェクトを置いているローカルマシンのディレクトリに移動し、コンテナを起動する。起動オプションには`-v`でそのディレクトリをコンテナがマウントするようにする。

$ cd ~/work/projcet
$ docker run -ti --rm -v `pwd`:/src node bash
root@f786b01456f2:/# which node
/usr/local/bin/node
root@f786b01456f2:/# node -v
v5.5.0
root@f786b01456f2:/#
root@f786b01456f2:/# which npm
/usr/local/bin/npm
root@f786b01456f2:/# npm -v
3.3.12
root@f786b01456f2:/#

後は起動時のオプションで指定したディレクトリで`node`コマンドを実行すれば、普段と何も変わらず開発ができる。コンテナを起動するときに`–rm`オプションを付けているのでコンテナから一時的にログアウトする時は`Ctrl-P Q`で抜ける必要がある。特に不要であれば通常通りログアウトすればコンテナも削除される。

以上。

■ 関連