- 投稿日:2020-04-14T23:55:36+09:00
Alfred4 + emoj|Alfred4で簡単に絵文字が入力できるらしい!
Alfred4で簡単に絵文字が入力できるらしい!
しかも無駄にディープラーニングやってるとか
やったこと
- Alfred4インストール、PowerPack登録
- Node.jsのインストール
- npm -g install xxxに失敗するので、npmのデフォルトディレクトリを作成する
- alfred-emojのインストール
- Alfred Preferences > Workflows > Emoj > Copy to Clipboard > [x]Automatically paste to front most app
これはおもしろい!?
参考リンク
Alfred3 おすすめワークフロー 7選 + 1
https://qiita.com/ryo2132/items/ef392999d32732fa0455alfred-emoj
https://github.com/sindresorhus/alfred-emoj?ref=producthuntNode.js®
https://nodejs.org/en/【備忘録】npm -g install に失敗する
https://qiita.com/NaokiIshimura/items/cc07441939b226e779c6
- 投稿日:2020-04-14T23:55:36+09:00
Alfred4 + emoj|Alfred4で簡単に絵文字が入力できるらしい!→alfred-emojiに変更
Alfred4で簡単に絵文字が入力できるらしい!
しかも無駄にディープラーニングやってるとか(alfred-emoj)
↓
違うワークフロー(alfred-emoji)に変更
こっちのほうが新しい、インストール簡単、使い方もわかりやすいやったこと
- Alfred4インストール、PowerPack登録
- Node.jsのインストール
- npm -g install xxxに失敗するので、npmのデフォルトディレクトリを作成する
- alfred-emojのインストール
- Alfred Preferences > Workflows > Emoj > Copy to Clipboard > [x]Automatically paste to front most app
これはおもしろい!?
↓
- aflred-emojiのインストールに変更
参考リンク
Alfred3 おすすめワークフロー 7選 + 1
https://qiita.com/ryo2132/items/ef392999d32732fa0455alfred-emoj
https://github.com/sindresorhus/alfred-emoj?ref=producthuntNode.js®
https://nodejs.org/en/【備忘録】npm -g install に失敗する
https://qiita.com/NaokiIshimura/items/cc07441939b226e779c6↓
【Mac向け】よく使うAlfred Workflowを晒してみます【絵文字入力、FontAwesomeアイコン検索、エンコード/デコード、数値の基数変換】
https://blog.ttskch.com/mac-alfred-workflow-introducing/alfred-emoji
https://github.com/jsumners/alfred-emoji
- 投稿日:2020-04-14T14:16:43+09:00
vue-good-tableをTypeScriptで使おうとして TS7016: Could not find a declaration file for module 'vue-good-table'.
使用バージョン
$ npm list vue typescript vue-good-table app@1.0.0 ├── typescript@3.8.3 ├── vue@2.6.11 └── vue-good-table@2.19.1問題
Vue.jsをTypeScriptで使っていて、以下ドキュメントどおりに進めたところ、コンパイルエラー発生。
エラー内容
TS7016: Could not find a declaration file for module 'vue-good-table'. '[app]/node_modules/vue-good-table/dist/vue-good-table.cjs.js' implicitly has an 'any' type.解決
[app]/@types/以下にファイル作成。
vue-good-table.d.tsdeclare module 'vue-good-table'TypeScriptまだ良く分からないですが、moduleを宣言すれば良いらしい。
@types/に関しては、d.tsファイルをそこに置くとコンパイル時に読み込んでくれるよう。※ tsconfig.json の typeRoots のデフォルト設定が @types ディレクトリになっています。
https://qiita.com/Nossa/items/726cc3e67527e896ed1eVueGoodTableはanyだけど、とりあえずコンパイルはできました!
- 投稿日:2020-04-14T09:52:47+09:00
Yarnでローカルのパッケージをaddする方法
この投稿では
yarnコマンドで、ローカルのパッケージをインストールする方法を紹介します。通常
yarn addはnpmjs.comで公開されたパッケージをダウンロードしてきてインストールしますが、ここで説明するのはローカルにのみ存在する自作のライブラリをaddする方法です。(
npmで同様のことをする方法は、「npmでローカルのパッケージをinstallする方法」をご覧ください)やりかた
ローカルのパッケージをインストールには、単純にインストールしたいパッケージのファイルパスを
yarn addの引数にします:yarn add インストールしたいパッケージのパスnode_modulesにインストールされるパッケージをシンボリックリンクにしたい場合:
yarn add link:インストールしたいパッケージのパスローカルパッケージをインストールする具体例
少し具体例をもとに説明します。
以下の図のように、
myappパッケージとmylibパッケージがあり、myappからmylibを使いたい例を見てみましょう。
mylibのindex.jsでは、helloWorld変数が提供されていて、myappのmain.jsでそれを使いたいとします。このとき、
myappパッケージにてyarn add ../mylibを実行するとこれが実現します:$ yarn add ../mylib yarn add v1.22.4 info No lockfile found. [1/4] ? Resolving packages... [2/4] ? Fetching packages... [3/4] ? Linking dependencies... [4/4] ? Building fresh packages... success Saved lockfile. success Saved 1 new dependency. info Direct dependencies └─ mylib@1.0.0 info All dependencies └─ mylib@1.0.0 ✨ Done in 0.08s.インストールされると、
package.jsonにmylibへの依存設定が追加されます:package.json{ "name": "myapp", "version": "1.0.0", "license": "MIT", "dependencies": { "mylib": "../mylib" } }
main.jsを実行してみます:$ node main.js Hello World!しっかりと
mylibの変数が使われているが分かります。ちなみに、インストールされた
myapp/node_modules/mylibはmylibをごっそりコピーしたものになります。../../mylibへのシンボリックリンクではないので注意です。シンボリックリンクにしたい場合はファイルパスの頭に
link:を付けます:yarn add link:../mylib
最後までお読みくださりありがとうございました。Twitterでは、Qiitaに書かない技術ネタなどもツイートしているので、よかったらフォローお願いします
→Twitter@suin
- 投稿日:2020-04-14T09:41:16+09:00
npmでローカルのパッケージをinstallする方法
この投稿では
npmコマンドで、ローカルのパッケージをインストールする方法を紹介します。通常
npm intallはnpmjs.comで公開されたパッケージをダウンロードしてきてインストールしますが、ここで説明するのはローカルにのみ存在する自作のライブラリをinstallする方法です。(
yarnで同様のことをする方法は、「Yarnでローカルのパッケージをaddする方法」をご覧ください)やりかた
ローカルのパッケージをインストールには、単純にインストールしたいパッケージのファイルパスを
npm intallの引数にします:npm install インストールしたいパッケージのパスローカルパッケージをインストールする具体例
少し具体例をもとに説明します。
以下の図のように、
myappパッケージとmylibパッケージがあり、myappからmylibを使いたい例を見てみましょう。
mylibのindex.jsでは、helloWorld変数が提供されていて、myappのmain.jsでそれを使いたいとします。このとき、
myappパッケージにてnpm install ../mylibを実行するとこれが実現します:$ npm install ../mylib + mylib@1.0.0 added 1 package and audited 1 package in 0.74s found 0 vulnerabilitiesインストールされると、
package.jsonにmylibへの依存設定が追加されます:package.json{ "name": "myapp", "version": "1.0.0", "license": "MIT", "dependencies": { "mylib": "file:../mylib" } }
main.jsを実行してみます:$ node main.js Hello World!しっかりと
mylibの変数が使われているが分かります。ちなみに、インストールされた
myapp/node_modules/mylibは../../mylibへのシンボリックリンクになります:$ ls -la myapp/node_modules lrwxr-xr-x 11 suin 14 Apr 9:35 mylib -> ../../mylib
- 投稿日:2020-04-14T00:59:33+09:00
discord.js + Klasa を使ったBotの作成覚え書き
参考 : discord.jsのフレームワークKlasaが強すぎる
合わせて読んでください。準備
- 環境
- Win10
- Node.js 12.13.0
- npm 6.12.0
適当にプロジェクトフォルダを作成し discord.js と Klasa をインストール
npm install --save discordjs/discord.js dirigeants/klasaコーディング
最初の一歩
app.jsを作成app.jsconst secret = require('./secret.js'); // BOTトークンはここに記述 const token = secret.token; const {Client} = require('klasa'); new Client({ prefix: '!!', // ボットのPrefix language: 'ja-JP', // 言語コード }).login(token);この状態で一度
node app.jsから起動し、危険なログが出てなければとりあず成功。コマンドの作成
commands/general配下に以下のソースを作成。Klasaはファイル名がそのままコマンド名になる。
ディレクトリ名はヘルプのカテゴリ名になる。
なお、下のソースに書かれているusageは単なる説明文ではなく引数のマッチャを参照するための記述なので注意。(これで30分ぐらい潰した……)commands/general/hello.jsconst {Command} = require('klasa'); module.exports = class extends Command { /** * @constructor * @param {...any} args */ constructor(...args) { // コマンドのオプション: https://klasa.js.org/#/docs/klasa/master/typedef/CommandOptions super(...args, { description: '挨拶を返す', usage: '<name:string>', // <>は必須引数、[]はオプション引数、<名前:型>のように書く }); } /** * @param {*} message */ async run(message,[name]) { return message.sendMessage(`${name}さんこんにちは!`); } };参考 :
Klasa : CreatingArguments
Klasa : CreatingCommandsBOTの反応はこんなかんじ
データストアの作成
providersディレクトリにプロバイダを作成する。公式を見るとなんか適当に書いてよさそうだったので適当に書いてみる。providers/datas.jsconst {Provider} = require('klasa'); module.exports = class extends Provider { /** * @constructor * @param {...any} args */ constructor(...args) { super(...args, {name: 'datas'}); this.counter = 0; } /** * init */ init() { this.counter=1; } /** * countup * @return {Number} count */ countup() { this.counter++; return this.counter; } };
hello.jsから動作確認してみる。const {Command} = require('klasa'); module.exports = class extends Command { /** * @constructor * @param {...any} args */ constructor(...args) { // コマンドのオプション: https://klasa.js.org/#/docs/klasa/master/typedef/CommandOptions super(...args, { description: '挨拶を返す', usage: '<name:string>', }); this.data = this.client.providers.get('datas'); } /** * @param {*} message */ async run(message, [name]) { return message.sendMessage(`${name}さんこんにちは!${this.data.countup()}回めの挨拶ですね!`); } };本当に適当に動いてしまった。



