haiju's 開発メモ

開発に必要な情報を自分用にメモ

Manjaro GNOME 18.0_x86-64にpurescript-halogenをpsc-packageで入れてみるテスト

ここ数日前からpurescriptのローカル環境の構築をいろいろ

試してみている。

2つ前くらいの記事で試したやつは、考え直したら邪道だった

ので、プロジェクト内で完結できる方法を模索している。

で、公式でいまだに、pulpとbowerをグローバルで使え情報が

載ってるけど、bowerやめてpsc-packageに移行しよう情報が

一昨年半ばから出回ってるのもあり、そちらのコマンドを実際に

パッケージを入れることで試してみたテスト(Φω|

(まぁビルドツールとパッケージマネージャが一体化してるspago

も気になるけどね)

しかし、インストールしたいのはpurescript-flareだけど、ドキュ

メントで理解した通りにjsonファイルを編集してコマンドを

叩いてもエラーで解決策が見えないので、halogenインストール

で試してみた。

おそらくだけど、forkしてきて、タグを作成後、package.json

にflareと依存ライブラリを追加しないとダメなんじゃ?

って思っている(Φω|

少なくともローカル開発環境にはそれで入る。

ついでに、flareの本体は0.12.0で動くように対応されてるけど、

それ以降も動くのか試したいから、どっちも自分の垢ページに

forkして対応しないとダメだ。うん。

[手順]

1. ローカルにpsc-packageでhalogenのインストールを試す

 ディレクトリを作成して移動。

% mkdir purescript-env-test

% cd ~/workspace/purescript-env-test

2. purescriptをインストール。

% npm install -S purescript

3. 簡易版package.jsonを作成。

% npm init -y

4. psc-packageをインストール。

% npm install -S psc-package

5. psc-package.jsonを作成し、halogenを"depends"に追加。

 "set"に設定するのは、package-setsのリポジトリのタグ名。

% npx pulp --psc-package init

% nvim ./psc-package.json

f:id:haiju:20190310125523p:plain

6. psc-packageでhalogenをインストール。

% ./node_modules/.bin/psc-package install

Install completeと表示されればOK。

※今はローカル環境構築のTipsをまとめてるとこなので

 公式のサンプルコードを試すのはまた今度。

[参考サイト]

qiita.com

psc-package.readthedocs.io

www.npmjs.com

heimdal.hatenablog.com

github.com

github.com

discourse.purescript.org

Firefox Developer Editionを起動してURLが開けない時に確認すること

ManjaroでもpacmanFirefox Developer Editionが

インストールできるようになった、うれしい!!!

と思って早速、起動してみたらURLが開かない!?

ということで、忘れないうちに確認した設定と手順を

メモしておく(Φω|

[手順]

※ちなみに利用してるのは英語版だけど、日本語版も

 確認するところは同じだと思う。

1. 右上端のメニューボタンをクリック。

f:id:haiju:20190309223727p:plain

2. 1で開いたメニューからPreferencesを選択。

f:id:haiju:20190309223829p:plain

3. General > Network Settings でSettings...をクリック。

f:id:haiju:20190309224449p:plain

4. Connection Settingsダイアログ一番上の、Proxy設定で

 デフォルトがUse system proxy settingsになっているので

 No proxyを選択し、右下のOKボタンをクリック。

f:id:haiju:20190309224527p:plain

5. Firefox Developer Editionを再起動しManjaro公式サイトが

 表示できてればOK。

※もちろん、任意のURLが開ければOK。

[参考サイト]

support.mozilla.org

homeディレクトリ以下にpurescript開発環境を構築してみる

ブログを書いてる途中で、プロジェクトごとと言わず

いっそのこと、homeディレクトリ以下にpurescript自体の

環境を持ってきて、その下にプロジェクトをまとめた方が

よくね?と思って検証してみたのでメモる(Φω|

ただし、その方法がpurescriptのお作法として合ってるのか

は知らないw

[手順]

1. homeディレクトリ以下に、purescript開発用のディレクトリを作成。

% mkdir purs-env

2. 最小限のpackage.jsonを作成。

% cd purs-env

% npm init -y

 ※ 今回は、npxでpulpを動かすのでscriptにpulpを登録しない。

3. 1にpurescript, pulp, psc-packageをインストール。

% npm install purescript pulp psc-package

4. purescriptとpsc-packageのエイリアスを .zshrcに定義。

% vim ~/.zshrc

alias purs="~/purs-env/node_modules/.bin/purs"
alias psc-package="~/purs-env/node_modules/.bin/psc-package"

5. 念のため、バージョンを動かして動作確認。

% npx pulp --version
Pulp version 12.3.1
purs version 0.12.3 using /Users/j001395/purs-env/node_modules/.bin/purs

% psc-package --version
0.5.1

% purs --version
0.12.3

6. 1以下にサンプルプロジェクトを作成。

% mkdir purescript-hello

7. 6でスケルトンを作成。

% cd purescript-hello

% npx pulp --psc-package init

8. サンプルコードを修正し、ビルド+実行。

% npx pulp run 

 

purescript をローカルにインストールして動かす

昨日書いたブログのコメントにいただいた方法と更に調べた

方法でローカルのプロジェクトルートにインストールした

purescriptを動かしてみたので備忘録としてメモる(Φω|

[手順]

1. ローカルにプロジェクトpurs-exampleを作成。

% cd workspace

% mkdir purs-example

2. package.jsonを最小限で作成。

% npm init -y

3. npmでpurescript, pulp, psc-packageをインストール。

% npm install purescript pulp psc-package

4. package.jsonのscriptにpulpを設定。

% nvim package.json

"scripts": {
    "pulp": "pulp"
},

5. .zshrcにpurescriptとpsc-packageのエイリアスを定義。

% nvim ~/.zshrc

alias purs="~/workspace/purs-example/node_modules/.bin/purs"
alias psc-package="~/workspace/purs-example/node_modules/.bin/psc-package"

% source ~/.zshrc

6. 念のため動作確認。

% npm run pulp --version
6.9.0

% npx pulp --version
Pulp version 12.3.1
purs version 0.12.3 using /home/haiju/workspace/purs-example/node_modules/.bin/purs

% purs --version
0.12.3

% psc-package --version
0.5.1

7. pulp init でスケルトンを作成。

f:id:haiju:20190307072346p:plain

8. サンプルプログラムのビルドと実行。

予め、”Hello, sailor!"を”Hello, world!"に修正しておく

f:id:haiju:20190307072744p:plain

以下略

f:id:haiju:20190307072759p:plain

[参考サイト]

blog.zuckey17.org

PureScriptのビルドツールのpulpコマンドをローカルインストールしたら動かない件

purescriptのドキュメントを読んでみると、基本グローバル

インストールになっているけど、Elm等と同様にプロジェクト

ごとに使ってみようと思い、あえてプロジェクトルートに

インストールしてみたら、purescriptとpsc-packageは問題

ないけど、pulpだけ動かない。

もしかしたら、pulpだけ動くコマンドが違うのかもしれない

と思ってドキュメントを読んでるけど、今のところ、よく

わからないので、情報を整理してみる(ΦωΦ;)

[手順]

0. nvmでNode.jsをインストール。

1. npm install <package_name> で試す。

1-1. PureScriptを試すプロジェクトディレクトリを作成。

% mkdir purs-example

1-2. 最小限のpackage.jsonを作成(空でもいいらしい)。

% cd purs-example

% npm init --y

※ --saveしなくても今はデフォルトになってるらしい。

※ dependenciesにnpm install <package_name>でインストールされた

 パッケージが設定されるらしい。↓

f:id:haiju:20190306040311p:plain

1-3. purescript, pulp, psc-packageをnpm installでインストール。

% npm install purs pulp psc-package

 ./node_modules/.bin は以下。

f:id:haiju:20190306024131p:plain

ここで、psc-packageが .exe になってるが、Manjaroにインストールしている。

1-4. 1-3でインストールしたバージョンを確認。

f:id:haiju:20190306025010p:plain

pulpの時に、purs (purescriptのコンパイラ) が見つからないと言われている。

どうも、プロジェクトルートの node_modules/.bin 以下を見てないっぽい。

2. npm install <package_name> --save-dev で試す。

2-1. --save-dev を検証するディレクトリを作成。

% mkdir purs-test

2-2. 最小限のpackage.jsonを作成。

% cd purs-test

% npm init --y

2-3. プロジェクトルートにpurs, pulp, psc-packageをインストール。

% npm install purs pulp psc-package --save-dev

        f:id:haiju:20190306044235p:plain

※ --saveがデフォルトになったということで、--save-devを

 実行すると、devDependenciesにそれぞれ書き込まれる。

1-3, 1-4を同様に試すが同じ結果のため省略。

3. グローバルインストール

3-1. purescript, pulp, psc-package をグローバルインストール。

% npm install -g purescript pulp psc-package

3-2. 各コマンドのバージョンを確認。

f:id:haiju:20190306053123p:plain

※上記より、pulp はpursの実行形式ファイルをローカルの ~/node_modules/.bin/

 じゃなくて、/node/versions/bin 以下を無条件に探しに行ってるということなのか?

 ということは、少なくともpurescriptはグローバルにインストールする必要が

 あるらしい。

3-3. プロジェクトを作成。

% mkdir purescript-hello

% cd purescript-hello

3-4. pulpとpsc-packageで依存ライブラリをインストール。

f:id:haiju:20190306055809p:plain

3-5. ビルドして実行。

% pulp run

(詳細略)

        f:id:haiju:20190306060408p:plain

3-6. ~/workspace/purescript-hello/src/Main.pursを開き、sailor! を world! に修正。

f:id:haiju:20190306060702p:plain

3-7. 再ビルド。

% pulp build

※ちなみに再ビルド後に実行。

% pulp run

3-8. テスト実行。

% pulp test

[わかったこと]

 上にも書いてるけど、pulpは単純にpursを検索している訳ではなく

グローバルにインストールしたpursを見に行ってるので、ローカル

インストールする場合は少なくともpursはグローバルである必要が

あるっぽい。

そして、psc-packageは何で.exeがインストールされてるんだろう?

ってのが謎すぎる。Windows用バイナリだと思うんだがなー(Φω|

[参考サイト]

github.com

github.com

github.com

psc-package.readthedocs.io

qiita.com

phiary.me

コマンドパスを自動で通し npm install -g しない

qiita.com

qiita.com

qiita.com

purescriptのテストツール

関数型言語のBDD系のテストフレームワークを調べている。

更新が活発なのはFSharpとOCamlとPureScriptにあるっぽい。

XXXSpec系のフレームワークはなかなかないので、purescript

にあると知って早速、試してみたくなったのでメモしておく。

[参考サイト]

purescript-spec.github.io

github.com

VS CodeでES5で書いてWarningが出たら見直すこと

VS CodeでES5の記法でテストデータを作成したら

内蔵のESLintでWarningが出たっぽいので、内容を見直してみた。

ちなみにWarningメッセージは以下。

 ['subject'] is better written in dot notation(W009).

betterとあるので、dot記法で書いた方がいいよと

言われているらしい(Φω|

[修正前のコード]

var schedule_event = event.event;

schedule_event['subject'] = "ES5 Test";

schedule_event['attendees'] = [{id: 1, type: "USER"}];

[修正後のコード]

var schedule_event = event.event;

schedule_event.subject = "ES5 Test";

schedule_event.attendees = [{id: 1, type: "USER"}];

ちなみに、ES6にトランスパイルしても同様のWarningが出力

されるので、VS CodeではProblemが気になるなら見直して

みたらいいよ程度のものだと思う。

[参考サイト]

developer.mozilla.org

codeburst.io