くりーむわーかー

プログラムとか。作ってて ・試しててハマった事など。誰かのお役に立てば幸いかと。 その他、いろいろエトセトラ。。。

2018年05月

NUXTのModulesのHook

ちとはまった。公式のココに書いてある通りにビルドの前に動かそうとして試したらうんともすんとも言わない。

module.exports = function (moduleOptions) {
  // build 用にフックを追加する
  this.nuxt.hook('build', async builder => {
    // builder が作成された時に一度だけ呼ばれます
    console.log('build module!!');
  })
}

builder.jsのソース見たら↓で書いてあった。

// Call before hook
await this.nuxt.callHook('build:before', this, this.options.build)

'build:before'ですかソーデスカ。↓に直すと上手く動く。

module.exports = function (moduleOptions) {
  // build 用にフックを追加する
  this.nuxt.hook('build:before', async builder => {
    // builder が作成された時に一度だけ呼ばれます
    console.log('build module!!');
  })
}

ソース見た方がはやいの。。。

NUXTのバンドルにキャッシュバスティングをつける

NUXTでビルドする時に、キャッシュバスティング用のクエリ文字列をつけたい場合は「nuxt.config.js」のbuildのとこを下の感じにする。※これだけだとnpm run devした時におかしくなるっぽいので要調査。。。

build: {
  filenames: {
    app: '[name].js?v=[chunkhash]',
    chunk: '[name].js?v=[chunkhash]',
    manifest: '[name].js?v=[hash]',
    vendor: '[name].js?v=[hash]'
  },
  ...
}

デフォだとファイル名にハッシュの文字列がつくから、それでもいいんだけど、ファイル名は固定させたい場合はこんな感じでいいのかしらね?結果的には大丈夫そうなんだけども・・・。出来るASSETの名前は「pages_index.js?v=13ce94dbf4253c98fda3」とか「app.js?v=756d7ba036939c0fe3b2」みたいな感じ。物理ファイルとしては「pages_index.js」とか「app.js」みたいな感じ。

WebPackの質問で書き方としては↑の感じで行けるよみたいに書いてあるんだけど、ついでに、出来ればコレ系は止めた方がいいよって書いてあってイマイチ理由がわからなかったりする。↓の質問。

GitのISSUES

イチを理由も書いていただいてて、質問した人も分かった~って言ってるんだけど、自分バカなのでよくわかりません。

ユーザが操作中に資源上げると整合性取れなくなる可能性あるからやめとけって事なのかしらしら。 そうだとしたら、理由で書いてる事って実運用で起きたら、そもそもリリースの仕方おかしいんじゃない?って気がするんだけども。不特定多数向けのインターネット上のサイトとかだと普通なのかしら。

UbuntuでVisualStudioCodeをインストール

Ubuntu 18.04でタイトル通りなんだけど、エラーとか出るので記載。そのうち治るかしらね。。。

とりあえず、VSCodeの公式に書いてある手順通りにやる。まず、「 .deb package (64-bit) 」のダウンロードして、下記コマンド。

sudo dpkg -i <file>.deb
sudo apt-get install -f

sudo apt-get update
sudo apt-get install code # or code-insiders

で、最初のdpkgでエラーが出る。「dpkg:依存関係の問題により code の設定ができません。(中略) libconf-2-4はまだインストールされていません。」みたいなやつ。だもんで、↓をやってみる。

sudo apt-get install libgconf-2-4

そしたら、「なんかダメっぽいから 'apt --fix-broken install' やってみて」って出る。なのでやる。

sudo apt --fix-broken install

これで、エラーなくなるので、あとは公式通り。

ターミナルから起動する場合「code」らしい。ほー。

Ubuntuで日本語入力が反応しない場合

タイトル通り。Ubuntu 18.04。

入力出てる時に右上のとこからMozcを選んでおかないとダメっぽ。

sample

MySQL(MariaDB)とPostgreSQLで文字コード指定で文字を作る(外字とか)

なんか久しぶりに書く気がする。

タイトル通り。サロゲとか外字の文字を文字コード指定でDBに入れたい時用。

MySQL(MariaDB)

insert testchar values ('外字',CHAR(0xEE8080 USING utf8mb4));
insert testchar values ('サロゲ',CHAR(0xF0A08083 USING utf8mb4));

サロゲを表現する場合、普通にIMEとかで見ると、「0xD840 , 0xDC03」って見えるけどこれを合わせた形式にする。

SELECT HEX(CONVERT(CHAR(0xD840DC03 USING utf16) USING utf8mb4));

上で出てきたコードをchar()に指定すればサロゲ文字が出る。あと、エンコード指定でutf8mb4を指定しないとダメ。サロゲ対応用の文字コードらし。

PostgreSQL

insert into testchar values('外字',chr('xE000' :: bit(16) :: int));
insert into testchar values('サロゲ','𠀃');--文字コード指定がわからん。

サロゲの文字コード指定が分かりませんでした。ごめんなさい。今度調べよ。

問合せ