11
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

NW.jsを実際に使ってみて躓いたポイントまとめ

Last updated at Posted at 2018-08-19

※この記事はブログからの転載記事です。

はじめに

前回記事を読んでくださった方はご存知だと思いますが、僕はKindleを便利にするためのアプリケーションをNW.jsを用いて開発しています。
この度ついに、exe化することに成功しましたので、今回はNW.jsをいざ使ってみたときに躓いたポイントを紹介していきたいと思います!
つまづきポイント

つまづきポイント①: 3rd製node_moduleもビルド対象!

...まぁ、冷静に考えれば「そりゃそうだ」なんですけどね。

NW.jsの紹介記事で、ビルド対象をsrcフォルダに移動させる必要があることを紹介しました。
このとき、srcに移動したソースファイル内でrequireされているモジュールについても、srcフォルダにインストールされている必要があります。

Clipboarder.2018.08.19-002.png
上記のようにnode_modulesフォルダがsrcフォルダ内に生成されている状態でしたら、
そのnode_modulesフォルダにインストールされているモジュールはrequireできるようになります。

このsrcフォルダへモジュールのインストールは
srcフォルダをカレントフォルダにした状態でnpm installするだけです。

つまづきポイント②: Nodeモジュール化してないコードは見えちゃう!

もし、index.htmlにほぼすべての処理を記載していたとします。
すると、この次に紹介する「右クリックすると意図しないメニューが出る」の対策をしていない場合では、
F12を押すと、index.htmlに記載されていたり、
scriptタグに記述されているファイルについてはソースが丸裸になります。

なるべくNode.jsのコードは外部モジュール化したほうが良いでしょう。

つまづきポイント③: 右クリックすると意図しないメニューが出る

NW.jsはデフォルトでChrome DevToolsが有効な状態でビルドされます。
Chrome DevToolsが有効な状態だと、NW.js上にて生成されたウィンドウの空欄上を右クリックすると、
再起動とか検証とかいろいろ見られたくない場所へのメニューが出現してしまいます。

Clipboarder.2018.08.19-003.png

これは製品として嫌なので、
srcフォルダ内のpackage.json"chromium-args" : "--disable-devtools"の記述を追加してChrome DevToolsを無効にする必要があります。

つまづきポイント④: process.argvが使えない!

NW.jsでprocess.argvを利用すると、いくら配列を渡しても、
process.argv.length1になります。公式のリファレンスにてnw.App.argvの利用がアナウンスされているっぽいので、nw.App.argvを利用してください。
使い方はprocess.argv同様です。

締め

ネイティブアプリ化といえばElectronだったり、React Nativeばかりがもてはやされて、なかなかNW.jsの日本語の情報が少ないですが...

是非、皆さんNW.jsを使ってみてください!
あんなシンプルな方法でビルドができてしまったり、まだまだポテンシャルがありそうな気がしてドキがムネムネです!

11
10
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?