※スマホ対応はしてません。

タグ: node.js

“VCBuild.exe”がないと言われたけど、windows-build-toolsを入れたら解決したよ。

カテゴリー: JavaScript

正直あんまりわかってないけどまあ解決したのでメモしておく。

ざっくり

管理者権限のPowerShellで npm install --global windows-build-tools したら解決した。

  • https://www.npmjs.com/package/windows-build-tools

環境

  • node v4.5.0
  • Windows 10

なお現在node.jsの最新バージョンはv8.4です。

問題: “VCBuild.exe”がないと言われる

何かをインストールしようとしたとき、こんなエラーが出ました。

C:\Users\Ginpei\project\foo>npm install
> contextify@0.1.15 install C:\Users\Ginpei\project\foo\node_modules\jsdom\node_modules\contextify
> node-gyp rebuild


C:\Users\Ginpei\project\foo\node_modules\jsdom\node_modules\contextify>if not defined npm_config_node_gyp (node "C:\Users\Ginpei\AppData\Roaming\nvm\v4.5.0\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "" rebuild )
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
MSBUILD : error MSB3428: Could not load the Visual C++ component "VCBuild.exe". To fix this, 1)  install the .NET Framework 2.0 SDK, 2) install Microsoft Visual Studio 2005 or 3) add the loca tion of the component to the system path if it is installed elsewhere.  [C:\Users\Ginpei\project\foo\node_modules\jsdom\node_modules\contextify\build\binding.sln]
gyp ERR! build error
...

MSBUILD : error MSB3428: Could not load the Visual C++ component “VCBuild.exe”.

node-gypでこける。なんかFAQだった気がする。

対応

MS Visual Studioをインストールすればいいのかなーと思ったけど、windows-build-toolsなるnpmパッケージでいけるらしい。npmパッケージじゃないのもあるのかなあ。

Windows PowerShellを管理者権限で起動

管理者権限じゃないとエラー。

>npm install --global --production windows-build-tools

-
> windows-build-tools@1.3.2 postinstall C:\Program Files\nodejs\node_modules\windows-build-tools

> node ./lib/index.js

Downloading BuildTools_Full.exe
[>                                            ] 0.0% (0 B/s)
Downloading python-2.7.13.msi
[>                                            ] 0.0% (0 B/s)
Downloaded python-2.7.13.msi. Saved to C:\Users\Ginpei\.windows-build-tools\python-2.7.13.msi.
Starting installation...
Please restart this script from an administrative PowerShell!
The build tools cannot be installed without administrative rights.
To fix, right-click on PowerShell and run "as Administrator".
npm ERR! Windows_NT 10.0.15063
...

Please restart this script from an administrative PowerShell!

というわけで、言われた通りに管理者権限でPowerShellを起動。

右クリックしてRun as administrator

で、この一行です。

npm install --global --production windows-build-tools

ここでツールをビルドしてるっぽくて相当時間かかった。

10分くらいかかった。

終わったら npm install し直すと、今度は成功した。やったね。

おしまい。

アンインストール

どうもwindows-build-toolsインストール前の状態への戻し方がわからない。npmのパッケージを削除してみたが、特に問題なく npm install が成功するようになってしまった。(まあ別にいいんだけど!)

>npm uninstall --global windows-build-tools

WindowsのSystem settingsから “Add or remote program” で一覧を開いて、今日インストールされたものの中からそれっぽいものを探す。どうやら以下の三つ。

  • Python 2.x.x
  • Microsoft Visual C++ Build Tools
  • Microsoft Visual C++ 2015 Redistributable (x64)

アンインストールするコマンドっぽいものはドキュメントに書いてあるんだけど、使い方がわからない……。これ↓と同じ症状。

参考

GruntJSでシェルのコマンドを(非同期に)実行する方法。

カテゴリー: JavaScript, サーバー

キーワードが悪かったのか、なかなか見つけられなかったので。

以下の流れです。

  1. タスクを作る
  2. シェルへコマンドを投げる
  3. 非同期処理が終わるまで待つ
    • Node.js
    • GruntJS
  4. エラーとか拾う

とりあえず、lsしてファイル一覧を得る処理を作ってみる事にします。

環境

$ grunt --version
grunt v0.4.0rc2

タスクを作る

JavaScriptをちょっと試そうと思ったら(JavaScript おれおれ Advent Calendar 2011 – 14日目)

カテゴリー: JavaScript, Web

JavaScript おれおれ Advent Calendar 2011 – 14日目

JavaScriptでちょっとした事を試したい、と思った時にいちいちHTMLファイル作ったりするのは面倒ですよね。

そんなときに便利なツールを紹介します。

アドレスバー

「ロケーションバー」とか「URL欄」とか言うあれです。

デバッグのしづらいiPhone Safariでも実行できます。

ただし、最近のFirefoxでは動かないみたいです。あとChromeだと先頭のjavascript:が消滅しちゃうので、手で書き直すとか一手間が必要になりました。

次のコードをコピーして入力欄に貼付け、実行(移動、URLを開く)してみてください。

javascript: alert(document.getElementsByTagName('a').length); void 0;

最後のvoid 0はおまじないです。undefinedを返すのですが、これがないと画面遷移してしまう場合がありますので。

コンソール

最近のブラウザーには標準で付いています。(Mac版だからメニューがちょっと違うかも。)

  • IE 8 … ツール>開発者ツール>スクリプト
  • Chrome … ツール>デベロッパーツール>Console
  • Opera … ツール>詳細ツール>Opera Dragonfly>コンソール

FirefoxはアドオンのFirebugを入れる必要があります。

またコンソールを有効にしていると、console.log()というメソッドを利用する事ができます。これもまた便利なんですが、また改めていつの日か。

ウェブサービス

ウェブサービスだとどこでも書けるし、書いたコードは残るので便利です。またURLが与えられるので、ブラウザー間の差を調べたりするのにも使えます。

jQuery等のライブラリーを選択して、読み込んだ状態でコードを書く事ができます。導入が面倒?なLint(変な記述を警告してくれるやつ)も付いてるので、コードの確認も楽です。

書き上げたものをブログなんかに埋め込む事もできます。

jsdo.it

カヤックが展開する、JavaScript、HTML5、CSSのソースコードを投稿・共有するコミュニティサイトです。

エディターはオートインデントやシンタックスハイライト等の機能を備えています。また画像等のアップロード機能もあるので、そのあたりもまとめて書き上げる事ができます。

アカウントの作成が必要です。OpenIDとOAuthを利用しており、Googleやtwitter、facebook、Hatena等のアカウントで登録できます。

jsfiddle

海外のサービス。

エディターは日本語の入力が不自由ですが、他は良い感じです。

SCSSやCoffeeScriptで書く事も可能です。

アカウントを作成する必要はありません。でも作成しとくと後から一覧で見られるので、 作っておいた方が何かと便利だと思いますよ。

サーバーサイド

最近噂のnode.jsなんか導入してみるのも悪くないと思います。

まあこの場合はグローバルオブジェクトがwindowではないので、色々と戸惑う場面はあるかとは思います。

いろいろあるよね

場面によって使い分けるのが最強です。

Debianに最新のRuby on Railsを入れようとしたらえらく手間だった件について。

カテゴリー: Web, サーバー

やあ良い子の諸君。今日も元気にしてるかな? ギンペイです。僕は暑くて元気がありません。

ちょろっとウェブアプリを作りたくて、Ruby on Railsに手を出してみようかなと思ってやってみたのですが、これがなかなかどうして、うまくいきませんでした。aptitude install railsするとシェル版のrailsがインストールされるというのはよくわからない……。

ともあれ、試行錯誤の結果うまく動くようになったみたいなので、まとめておきます。

前提

環境は最小構成でインストールした直後のDebian (lenny)です。

# cat /etc/debian_version
5.0.8

せっかくなので最新のものをインストールしましょう。ソースコードを各サイトから持ってきます。(後の手順でwgetします。)

  • Ruby … 「最新の安定版」の”tar.gz”版
  • RubyGems … 一番上の”rubygems-*.*.*.tgz”
  • node.js … “node-v*.*.*.tar.gz Source Code”

node.jsは一見関係なさそうですが、内部で使ってるみたいなので、必須です。(正確にはJS実行環境が必須、です。) (さらに…)