前の関連記事:linuxBean14.04(108)Visual Studio Codeのインストール
(2016.5.13追記。linuxBean14.04(111)SyntaxHighlighter3.0.9をビルドする:成功編でビルドがうまくいきました。)SyntaxHighlighter 3.0.9のソースをダウンロード
SyntaxHighlighter3.0.8が3.0.9にバージョンアップしておりSyntaxHighlighter 3.0.9 を node.js でビルドする — Baldanders.infoにビルドの方法が解説してあったのでやってみました。
Release v3.0.9 · alexgorbatchev/syntaxhighlighterからsyntaxhighlighter-3.0.9.tar.gzをダウンロードしました。
ファイルマネージャで右クリック→ここでファイルを展開。
syntaxhighlighter-3.0.9フォルダがでてきます。
README.mdにビルド方法が書いてあります。
Node.jsのパッケージとモジュール一覧を見てみる
ビルドするにはbowerとgruntが必要に思えますがそれをインストールするようには書いておらずSyntaxHighlighter 3.0.9 を node.js でビルドする — Baldanders.infoではnpm installでnode_modulesフォルダが作成されると書いてあります。
とりあえず~/node_modules/.binフォルダをみてみるとjsdocしか入っていません。
install | npm Documentationを読んでみるとnpm installはそこにあるpackage.jsonを読み込んで必要なパッケージをインストールしてくれるようです。
syntaxhighlighter-3.0.9/package.jsonをみるとbowerとかgruntとかいろいろ必要なパッケージがdevDependenciesの項目に書いてありました。
現在入っているパッケージリストはnpm listで見れます。
pq@pq-VirtualBox:~$ which npm /home/pq/.nvm/versions/node/v6.0.0/bin/npmまずnpmがどのNode.jsのものなのかwhichコマンドで確認するとlinuxBean14.04(107)nvmでnode.jsのインストールができない問題への対応でインストールしたnvm下のv6.0.0とわかりました。
pq@pq-VirtualBox:~$ npm ls /home/pq └─┬ jsdoc@3.3.2 ├── async@0.9.2 ├─┬ catharsis@0.8.7 │ └─┬ underscore-contrib@0.3.0 │ └── underscore@1.6.0 ├── escape-string-regexp@1.0.3 ├── esprima@1.1.0-dev-harmony ├── js2xmlparser@0.1.9 ├── marked@0.3.5 ├─┬ requizzle@0.2.1 │ └── underscore@1.6.0 ├── strip-json-comments@1.0.4 ├── taffydb@2.6.2 ├── underscore@1.7.0 └── wrench@1.5.8npm lsで現在インストールされているパッケージを見てみました。
~/node_modules/.binフォルダにあるjsdocとその下にずらずらたくさんモジュール名が出てきました。
Npm Listの依存関係を非表示にする | Mawatari.jpによると--depth=0をつけると依存関係を非表示にできるということでやってみるとjsdocだけになりました。
pq@pq-VirtualBox:~$ npm ls --depth=0 /home/pq └── jsdoc@3.3.2-gオプションをつけるとグローバルにインストールされたパッケージが出てきます。
pq@pq-VirtualBox:~$ npm ls --depth=0 -g /home/pq/.nvm/versions/node/v6.0.0/lib └── npm@3.8.6うーん、nvmを使っている場合ローカルなパッケージは~/node_modules、グローバルなパッケージは~/.nvm/versions/node/v6.0.0/lib/node_modules、に入っているものをそれぞれ指すようです。
それでローカルなパッケージjsdocが依存しているモジュールは~/node_modules/jsdoc/node_modules、グローバルなパッケージnpmが依存しているモジュールは~/.nvm/versions/node/v6.0.0/lib/node_modules/npm/node_modulesに入っています。
(2016.5.8追記。「グローバルにインストール」の定義は「Terminalからコマンドとして使える」ということでした。linuxBean14.04(110)Node.jsのnpm使い方メモ参照。)
SyntaxHighlighter 3.0.9をビルドする
README.mdの手順通りでビルドできそうなのでやってみます。
パスに日本語が入っているとエラーが出るかもしれないので日本語がないパスで行います。
解凍したsyntaxhighlighter-3.0.9フォルダにpackage.jsonがあるのでそこでnpm install。
npm installの実行結果
うーん、エラーがたくさんでているのでこまま次に進んでもうまくいかなさそうです。
最初の方にでてくるWARNはなんとか乗り切ったようですが40行目でgyp ERR! build errorとなっているのがいただけません。
pq@pq-VirtualBox:~/_tmp/syntaxhighlighter-3.0.9$ npm ls --depth=0 SyntaxHighlighter@3.0.9 /home/pq/_tmp/syntaxhighlighter-3.0.9 ├── async@0.2.9 ├── bower@1.2.7 ├── coffee-script@1.6.3 ├── ejs@0.8.4 ├── express@3.2.6 ├── grunt@0.4.1 ├── grunt-cli@0.1.9 ├── jade@0.30.0 ├── less@1.3.3 ├── minimatch@0.2.12 ├── node-sass@0.6.7 ├── shelljs@0.2.6 └── uglify-js@2.2.5とりあえずpackage.jsonに書いてあるパッケージはインストールされたようにみえます。
gypのエラーについて調べてみるとnodeのバージョンがよくないようです。
Doesn't support node 5 · Issue #34 · websockets/bufferutil
nodeを4.xに戻せば動くようなのでnvm ls-remoteで調べてみるとnode v4.4.3があったのでこれをnvmでインストールします。
pq@pq-VirtualBox:~/_tmp/syntaxhighlighter-3.0.9$ nvm install v4.4.3 Downloading https://nodejs.org/dist/v4.4.3/node-v4.4.3-linux-x86.tar.xz... ######################################################################## 100.0% Now using node v4.4.3 (npm v2.15.1) pq@pq-VirtualBox:~/_tmp/syntaxhighlighter-3.0.9$ which npm /home/pq/.nvm/versions/node/v4.4.3/bin/npmこのv4.4.3のnpmでnpm installします。
pq@pq-VirtualBox:~/_tmp/syntaxhighlighter-3.0.9$ npm install npm WARN package.json SyntaxHighlighter@3.0.9 No license field.ちゃんと処理されたのかわかりませんがすぐにこの一行がでてきて終了しました。
(2016.5.8追記。npm installをやり直すときはnpm installを実行したフォルダに作成されたnode_modulesフォルダを削除しないといけませんでした。)
(2016.5.6追記。node v4.4.3でやり直しても結局v6.0.0と同じ結果でした。syntaxhighlighter-3.0.9 npm install (node v4.4.3))
./node_modules/.bin/bower installの結果
これもうまくいったようですが、次のgrunt buildでにっちもさっちもいかなくなってしまいました。
pq@pq-VirtualBox:~/_tmp/syntaxhighlighter-3.0.9$ ./node_modules/.bin/grunt build Loading "Gruntfile.coffee" tasks...ERROR >> Error: /home/pq/_tmp/syntaxhighlighter-3.0.9/node_modules/node-sass/precompiled/linux-ia32/binding.node: undefined symbol: _ZN2v811HandleScopeC1Ev Warning: Task "build" not found. Use --force to continue. Aborted due to warnings.
参考にしたサイト
SyntaxHighlighter 3.0.9 を node.js でビルドする — Baldanders.info
Windowsでビルドしています。
Release v3.0.9 · alexgorbatchev/syntaxhighlighter
SyntaxHighlighter 3.0.9のソース。
npm Documentation
npmのマニュアル。
Npm Listの依存関係を非表示にする | Mawatari.jp
npmのインストールパッケージを簡潔に表示する方法。
Doesn't support node 5 · Issue #34 · websockets/bufferutil
gyp ERR! build errorについてはnodeをv4に下げると解決しました。
0 件のコメント:
コメントを投稿