- 1. webpack入門して仲良くなりたい~Loader編~
- 2. nvm環境のnpm自体をコマンド一発で最新化する方法
- 3. SalesforceからJavascriptボタンを追放する!アクションボタンとフロービルダーを組み合わせた(前編)
- 4. vuelidateを使ってバリデーションを実装する。
- 5. webサービスを運営してみた(2020/2/15)
- 6. ブラウザにデータを保存する方法
- 7. Debugger for Chrome の launch で Google アカウントでのログインができなくなった件
- 8. 便利ページ:アイコンファイルを生成する
- 9. TechCommitのお年玉企画で当たったTechpitの教材「Tinder風マッチングアプリを作ってみよう!」を終えて
- 10. [Node.js][JavaScript]CryptoAPIの違いでハマったのでまとめ
- 11. vue-routerで親子間でのイベント処理
- 12. 初心者によるプログラミング学習ログ 239日目
- 13. ユーザー目線のVueコンポーネント実装
- 14. 【Nuxt.js】Vuex基礎編:コードをスッキリさせよう
- 15. Leafletのマーカー(アイコン)にgeoJSONから読み込んだデータ(番号・数字・文字列)を表示する
- 16. Nuxt.js - Firebaseへのデプロイ & 独自ドメインの設定
- 17. iPad ProでPWAして全画面表示する~最終的に運用でカバー~
- 18. リンク画像にマウスホバーすると画像がふわっと(重要)変化する方法
- 19. JSで要素間を線で繋いだり動かしたりライブラリ調査@202002
- 20. 【JavaScript】Vue.js(Element UI)を使用している際に「async-validator」単体で使う場合のカスタムバリデーション実装方法
webpack入門して仲良くなりたい~Loader編~
#仲良くなりたい
– [基本編](https://qiita.com/gabochi/items/b0bc1d522b12fe124f90)
– [開発環境編](https://qiita.com/gabochi/items/caca7cdfaa4a35b73246)
– Loader編 ←今ココ!!
– Plugin編 近日公開予定基本的なバンドルの方法と開発がラクになるように設定を行ったので、次はLoadersと仲良くなりたいと思います。
webpackの神髄はloaderらしいです## Loaderってなに?
Loaderは、jsファイル以外のものをバンドルするための機能です。
役目はjsファイルとして読み取れる形に変換することここでは、cssファイル・画像ファイルについて扱います。
## cssファイルをバンドルする
cssファイルをバンドルするには2つのloaderを使います。
– css-loader
– cssファイルの読み込み
– style-loader
– 読み込んだcssファイルをstyleとして反映させる## css-load
nvm環境のnpm自体をコマンド一発で最新化する方法
## コマンド一発でnpm自身を最新化する方法
nvm環境でnpm自体のアップデートがうまく行かなかったのでコマンド一発で成功する方法を公開しときます
### やり方
以下、bashコマンドラインで実行するだけの簡単なお仕事
ヒアドキュメント使ってるのでcatから下部のEOFまでコピーしてね
(Macの場合は「$PROGRAMFILES」環境変数とれないので書き換えればOK)“`
$ cat <npm_update.sh && chmod +x npm_update.sh && ./npm_update.sh && rm -rf ./npm_update.sh
#!/usr/bin/bash
cd “$PROGRAMFILES”/nodejs
rm npm npx npm.cmd npx.cmd
mv node_modules/npm node_modules/npm2
node node_modules/npm2/bin/npm-cli.js i -g npm@latest
rm -rf node_modules/npm2/
EOF
“`### やって
SalesforceからJavascriptボタンを追放する!アクションボタンとフロービルダーを組み合わせた(前編)
#はじめに
SalesforceのClassicでJavascriptボタンはかなり便利で使い勝手のよかったものの一つです。特別プログラムの経験がない私でも以下のように**レコード作成時や更新時の利便性向上のために、Javascriptボタンを使用していました。**[レコード作成時に関連レコードや遷移元レコードの値を項目の初期値、デフォルト値を設定する方法](https://help.salesforce.com/articleView?id=000336823&language=ja&type=1&mode=1)
よく以下のようにJavascriptボタンを作っていました。
![Salesforceのjavascriptボタンの一例.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/510376/4949acad-aa68-4106-f279-830b36d5a371.png)取引先や商談のレコードページにJavascriptボタンを置くだけでなく、レポートを作成してそこにカスタム項目を追加し
vuelidateを使ってバリデーションを実装する。
インストール
“`shell
npm install vuelidate –save
“`グローバルで使用するときは、下記のように記述
“`javascript
import Vue from “vue”;
import Vuelidate from “vuelidate”;
Vue.use(Vuelidate);
“`コンポーネント内で直接使用するときは、
“`javascript
import { validationMixin } from ‘vuelidate’var Component = Vue.extend({
mixins: [validationMixin],
validations: { … }
})
“`のようにコンポーネントファイルに追加してください。
例えば、age と message という 2 つの属性にそれぞれ必須のバリデーションを、
加えて、名前のほうに 4 文字以上で入力させたい場合は、下記のように validations
の中でそれぞれ`required`、name に minLength を書い
webサービスを運営してみた(2020/2/15)
# はじめに
アルバイトの勤怠管理を無料でできるサービス[Timestamp](http://time-stamp.net)を個人で運営しています。
ここでは開発まわりの記録を残していきます。# ユーザー数
![スクリーンショット 2020-02-15 3.25.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/557095/e1676d22-984a-0843-9948-94062bc31f9e.png)
googleアナリティクスのグラフです。
ユーザ数が先週より伸びてますね。嘘です伸びてないですね。
ほとんどがQiita記事のリンクからの流入で、google検索からは1日0~5人ぐらいみたいです。
僕自身がgoogle検索してもなかなか見つからないのに、0人でないことに驚きです。# 雑記
### googleアドセンスの審査に落ちました
googleアドセンスの審査に落ちました。
審査基準を把握していないのですが、ページビューが足りないとかなのかな?
ユーザがいない状態でアドセンスを導
ブラウザにデータを保存する方法
## 概要
Web システムを開発していて、データを保存しておきたいけどクライアント側だけでどうにかしたいという場合の方法をまとめました。
## 調査結果
調べた結果から書くと、`Web Storage`を使用しましょう。同じような仕組みとして`cookie`もありますが、以下の 3 つの違いから、`Web Storage`を使用した方が良いと思います。
1. 扱えるデータが`Web Storage`のほうが大きい(`cookie`は 4KB、`Web Storage`は 5MB)。
1. JavaScript による制御がより簡単。
1. `cookie`はリクエスト毎に自動送信されてしまう。## 使用方法
まず`Web Storage`は`localStorage`と`sessionStorage`に分かれています。2つの主な違いはデータの有効期限で、`localStorage`は永続的、`sessionStorage`はウィンドウまたはタブを閉じるまでです。
2つの使用方法に大きな違いは無く、アクセスするオブジェクトが異なるだけです。
– localStorag
Debugger for Chrome の launch で Google アカウントでのログインができなくなった件
Firebase Auth を使った Web アプリを VSCode にて開発中、昨年(2019年)末からだと思うのですけど、Google アカウントでのログインができなくなったことに気づきました。
あ、これを書いてる時点の Chrome バージョンは 80.0.3987.106(Official Build) (64 ビット)で、OS は Windows 10 Pro で依然として再現しています。
Web アプリ開発で、VSCode に [Debugger for Chrome](https://marketplace.visualstudio.com/items?itemName=msjsdiag.debugger-for-chrome) を追加して “launch.json“ に次のように記述する方法はよく知られています。
“`json
{
“version”: “0.2.0”,
“configurations”: [
{
“type”: “chrome”,
“request”: “launch”,
便利ページ:アイコンファイルを生成する
「[便利ページ:Javascriptでちょっとした便利な機能を作ってみた](https://qiita.com/poruruba/items/6c67c7eef34ed302feb3 )」のシリーズものです。
今回は、1つの画像ファイルから、AndroidやiPhomeアプリで使う様々なサイズのアイコンを生成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/261826/a5a6e3c3-497a-abf8-e7f2-190f093a66b5.png)
いつもの通りGitHubにも上げてあります。
https://github.com/poruruba/utilities参考までに、以下にデモとしてアクセスできるようにしてあります。「画像ファイル」のタブを選択してみてください。
https://poruruba.github.io/utilities/# 操作方法
まずは、ドラッグアンドドロップで、アイコン化したい画像ファイルをドロップします。
アプリで使われ
TechCommitのお年玉企画で当たったTechpitの教材「Tinder風マッチングアプリを作ってみよう!」を終えて
# TechpitのTinder風マッチングアプリを作ってみよう!を完了しました
Qiita初投稿です。
TechCommitのお年玉企画で当選したこちらの教材を無事終わらせることが出来たので、感想と学んだことのメモを残しておきます。## 学んだこと
– **content_tag**は動的にHTMLを生成出来る便利なコード。erbとhtmlが混ざってしまう時にすっきり書ける。
– `content_tag(:i, “”, class: “fas fa-cog fa-2x”)` → `[Node.js][JavaScript]CryptoAPIの違いでハマったのでまとめ#Overview
Node.jsはJavaScriptで書けるから、Webの中では”Write once, run anywhere”的な美味しいこともある。
しかし、各環境にbuiltinされているAPIを使ったときはそうはいかない時がある。
今回は暗号化のCryptoで不覚にも1日ハマったのでその記録を残しておく。#Target reader
– Node.jsで暗号化したデータをブラウザで復号化したいと思っている方。
#Prerequisite
– AESの概要は理解していること。
– 今回はAES256-CBCを使用する。
– 記憶が正しければAES192はブラウザのAPIでサポートされていない旨のエラーが出たため。#Body
##どうして片方のAPIで統一しないの?
これはいい質問だ。実際のところ、Node.jsのcryptoをブラウザで実行したことがある。
どうして採用されなかったのか?**なぜなら100KBほどバンドルサイズが増えたから。**
詳しく知りたい場合は、この方の記事を読んでみるといいかもしれない。
https://enginee
vue-routerで親子間でのイベント処理
# 概要
vue-router使用時の「子→親」あるいは「子1→子2」のイベント渡しの記述方法について自分用メモ
:warning:ソースコードは簡略化したもので、ちゃんとテストしていないので動かないかも
# サンプルコード
“`this.$router.app.$on“` を扱うのがポイント。それ以外は通常のイベントバスのやり方と同じ。
## 主要な部分
“`javascript:app.js
//(前略)
const app = new Vue({
router, // これが「ルーターインスタンスを root インスタンスに router オプションとして」かな?
el: ‘#app’,
render: h => h(App)
});
“`## 親コンポーネント
“`html:parent.vue