haiju's 開発メモ

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

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

ES5のコードをES6以降に変換するLebabをVS Codeにインストールする

今、ES5からES6以降に変換するトランスパイラの

実装を勉強してるところなので、ES6以降をES5に

変換するBabelの反対ってあるのかな?

と思って調べてみたら、Lebabというのがあるらしい

というのを知った。

基本はnpmでインストールして使うみたいだけど、

VS Codeプラグインとしてインストールできた方が

勉強しやすいなと思ってたらプラグインがあったので

導入方法をメモする(Φω|

[手順]

1. VS Codeを起動。

2. F1を押して表示された検索窓で、Extensions: Install Extensions

 を選択。

f:id:haiju:20190304101729p:plain

3. 左のツリーでlebabを検索しInstallをクリックし、インストールを実行。

f:id:haiju:20190304101757p:plain

4. 3のInstallがInstalledに変わればOK。

[参考サイト]

lebab.unibtc.me

github.com

marketplace.visualstudio.com

github.com

co.bsnws.net

blog.asial.co.jp

レガシーな ES5 を モダンな ES6 に変換するツール lebab -『JavaScript』 | webmanab.html/ウェブまなぶ

speakerdeck.com

davidwalsh.name

softwarehut.com

stackoverflow.com

css-tricks.com

www.reddit.com

Windows10のPHPStormインストール時に誤って関連付けたファイルをデフォルトに戻すには?【調査中】

PHPStormのバージョンを2019.02 から 2019.03に上げるために

前のバージョンをアンインストールしてインストーラーを実行

したところ、誤ってファイル拡張子を関連付けてしまったので、

全部デフォルトの状態に戻したいのだが、JetBrainsの日本語

ヘルプにはそれらしい情報がないので、yahoo.comで英語の

情報を検索している(Φω|

そこで、少しわかった情報を頼りに直すメモをまとめる。

多分、PHPStorm自体では関連付けの解除はできなさそう。

[Windows標準のassocコマンド]

1. コマンドプロンプトを管理者権限で起動。

 cmd.exeはWindows10ではWindows システムツール以下にある。

2. 以下のコマンドを実行。

f:id:haiju:20190228145526p:plain

3. ファイル拡張子の関連付けが削除されたか確認。

4. 別窓で開いたエクスプローラーで確認したが変わってない。

5. 一応、システムを再起動してみるが変わってない。

[インストールしたプログラムに関連づいたファイルを変更]

1. Windowsの設定ダイアログを開く。

f:id:haiju:20190228152601p:plain

2. 1よりアプリを選択。

3. 左のツリーから規定のアプリを選択。

f:id:haiju:20190228152631p:plain

4. 既定のアプリ画面下のファイルの種類ごとに既定のアプリを選ぶ選択。

f:id:haiju:20190228152700p:plain

5. 次のファイルの種類ごとに既定のアプリを選ぶ画面で、左の拡張子ツリー

 からPHPStormに関連づいた.jsを選ぶ。

6. アプリを選ぶダイアログが出るが、そもそも既定の拡張子のアイコン

 が出てこない。

f:id:haiju:20190228152742p:plain

[Windows10のレジストリエディタ]

1. regeditを起動し、以下をそれぞれ編集。

(ex).js

1-1. コンピューター\HKEY_CURRENT_USER\Software\Microsoft\Windows\

 CurrentVersion\Explorer\FileExts\.js\OpenWithList 以下を確認。

f:id:haiju:20190225121402p:plain

データにphpstorm64.exe がある。

  名前                                 種類                             データ

   e                                REG_SZ                      phpstorm64.exe

-> eを選択してデータ修正を選び、値を消して更新。

1-2. コンピューター\HKEY_CURRENT_USER\Software\Microsoft\Windows\

 CurrentVersion\Explorer\FileExts\.js\OpenWithProgids 以下を確認。

f:id:haiju:20190225121428p:plain

PhpStorm2018.3 がある。

->PhpStorm2018.3を削除(削除後、追加できず。これはバイナリ値である)

1-3. コンピューター\HKEY_CURRENT_USER\Software\Microsoft\Windows\

 CurrentVersion\Explorer\FileExts\.js\UserChoice 以下を確認。

f:id:haiju:20190225121447p:plain

PhpStorm2018.3 がある。

  名前                                 種類                            データ

 ProgId                              REG_SZ                      PhpStorm2018.3 

->ProgIdをクリックして値のデータを消去して、OKを押そうとするがエラー。

2. システムを再起動してみるが、ファイルの種類はPHPStormが

 握ったままになってて、拡張子が変わってない。

3. PHPStormを再インストールするかどうか悩んでいる <-- イマココ 

[参考サイト]

community.spiceworks.com

stackoverflow.com

intellij-support.jetbrains.com

confluence.jetbrains.com

iww.hateblo.jp

fanblogs.jp

www.glamenv-septzen.net

suyamasoft.blue.coocan.jp

suyamasoft.blue.coocan.jp

docs.microsoft.com

imu0x10.hatenablog.com

www.ipentec.com

www.pg-fl.jp

tech.tanaka733.net

mahoro-ba.net

www.giga.de

superuser.com

www.ipentec.com

www.businessnewsdaily.com

www.glamenv-septzen.net

docs.microsoft.com

qa.itmedia.co.jp

qiita.com