16
6

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 3 years have passed since last update.

GAOGAOAdvent Calendar 2020

Day 3

nodeアプリケーションを実行可能ファイルにして出力する

Posted at

結論

こちらを使っていきます
https://github.com/nexe/nexe

Nexe is a command-line utility that compiles your Node.js application into a single executable file.
(NexeはNode.jsアプリケーションを実行可能ファイルにコンパイルするためのコマンドラインツールです。)

プログラム

せっかくなのでそれっぽくするために、Qiitaの情報をスクレイピングしてくるプログラムを作成します
*chromedriverが入っている必要あり

qiita.js
const {Builder, By, Capabilities, Key, until} = require('selenium-webdriver');
const capabilities = Capabilities.chrome()

capabilities.set('chromeOptions', {
  args: [
    // '--headless',
    '--disable-gpu',
    '--window-size=1024,768'
  ],
})

const search = async () => {
    let driver = await new Builder()
        .withCapabilities(capabilities)
        .build();

    try {
        await driver.get('https://qiita.com/');

        const q = await driver.findElement(By.name('q'));
        q.sendKeys('クリスマス', Key.RETURN)

        const searchResult_itemTitles =  await driver
            .wait(until.elementsLocated(By.className('searchResult_itemTitle')))

        for ([index, searchResult_itemTitle] of searchResult_itemTitles.entries()) {
            console.log((index + 1) + '. ' + await searchResult_itemTitle.getText())
        }
    } catch (err) {
        console.log(err);
    } finally {
        await driver.quit();
    }
}

search()
package.json
{
  "name": "qiita-scrapor",
  "version": "1.0.0",
  "description": "testing selenium webdriver",
  "main": "qiita.js",
  "dependencies": {
    "selenium-webdriver": "^4.0.0-alpha.7"
  },
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Takuma Hanaya",
  "license": "ISC"
}

npm i で必要なライブラリを入れた後 node qiita.js でテストし動いたら準備OK。

hanayatakuma@MacBook-Pro-2:~/S/qiita-scrapor
➤ node qiita.js
1. Processingでクリスマス
2. クリスマスなのでケーキをえらびます
3. enebularでクリスマスイルミネーション
4. クリスマスといえばxsnow
5. クリスマス イルミネーションもどき
6. hikari と過ごすクリスマス
7. ダァ シエリイェスなクリスマス
8. iBeaconでクリスマスに備えよう!
9. クリスマスはIonicでゲームを作ろうぜ!
10. 聖夜の夜にGazeboでクリスマス

Nexe

nexeを入れていきます

npm i -g nexe

以下のコマンドで実行可能ファイルにnodejsアプリケーションをパッケージングします

nexe qiita.js --output qiita-mac-x64 --target mac-x64-10.10.0

パッケージ可能なnodeのバージョン/OSリストは以下
https://github.com/nexe/nexe/releases/tag/v3.3.3

上のコマンドでは qiita-mac-x64 というファイルができているので実行します

hanayatakuma@MacBook-Pro-2:~/S/qiita-scrapor
➤ qiita-mac-x64
1. Processingでクリスマス
2. クリスマスなのでケーキをえらびます
3. enebularでクリスマスイルミネーション
4. クリスマスといえばxsnow
5. クリスマス イルミネーションもどき
6. hikari と過ごすクリスマス
7. ダァ シエリイェスなクリスマス
8. iBeaconでクリスマスに備えよう!
9. クリスマスはIonicでゲームを作ろうぜ!
10. 聖夜の夜にGazeboでクリスマス
16
6
0

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
16
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?