牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

eslintrc の設定を見直す

$ sudo npm install -g eslint eslint-plugin-react
$ eslint --version
v5.1.0

.eslintrc

{
  "plugins": ["react"],
  "extends": [
    "eslint:recommended",
    "plugin:react/recommended"
  ],
  "env": {
    "browser"  : true,
    "node"     : true,
    "mocha": true,
    "es6"      : true
  },
  "rules": {
    "react/prop-types": "off",
    "eqeqeq": ["error", "smart"],
    "no-console": "off",
    "semi": ["warn", "always"],
    "vars-on-top": "warn"
  },
  "parserOptions": {
    "ecmaVersion": 2018,
    "sourceType": "module",
    "ecmaFeatures": {
      "jsx": true
    }
  }
}

Emacs の Flycheck で Javascript の ESLint 設定で airbnb 使いたいのに動かない場合のメモ

問題

eslint-config-airbnb のパッケージをインストールして.eslintrc に "extends": ["airbnb"], 入れるとjsファイルを開いても Flycheck が動かなくなる。

原因

node パッケージの依存関係でなるっぽい

eslintは現状最新 v5.1.0 だけど4系じゃないと入らないっぽい

  "devDependencies": {
    "eslint": "^4.19.1",
    "eslint-config-airbnb": "^17.0.0",
    "eslint-plugin-import": "^2.13.0",
    "eslint-plugin-jsx-a11y": "^6.1.1",
    "eslint-plugin-react": "^7.10.0"
  }

ESLint5系を入れると古いバージョン外入ってしまう eslint-config-airbnb-base の index.js が deprecated のやつを使っててパースがおかしくなって flycheck が正常に動作しなくなるっぽい

Emacsでnode_packages/.binのパスをうまく読み込まない

面倒なのでグローバルにひつようなjsのパッケージを入れちゃう
(インストール済みなのはuninstallしておく)

$ npm -g install eslint@4.19.1
$ npm info "eslint-config-airbnb-base@latest" peerDependencies --json | command sed 's/[\{\},]//g ; s/: /@/g' | xargs npm install -g "eslint-config-airbnb-base@latest"
$ npm install -g eslint-plugin-jsx-a11y eslint-plugin-import eslint-plugin-react

とりあえず Emacsシンタックスチェックできるようになった。

追記: add-node-modules-path 使うのが簡単

やっぱりグローバルにインストールするのはよろしくないので add-node-modules-path 使うことにした

  • M-x package-list-packagesadd-node-modules-path をインストール
  • init.el に設定追加
(eval-after-load 'js2-mode
  '(add-hook 'js2-mode-hook #'add-node-modules-path))
(eval-after-load 'js2-jsx-mode
  '(add-hook 'js2-jsx-mode-hook #'add-node-modules-path))

(゚д゚)ウマー

参考メモ

firebase deply でプロジェクトを切り替えてデプロイしたい場合のメモ

$ firebase deploy --project prod
$ firebase deploy --project dev

help に --projectオプション書いてないけど切り替わる
--project == -P

参考

Emacs.app で dired 開いたウインドウにファイルを drag and drop するとコピーされるので回避するメモ

(Emacs25.31, MacOS10.12.6)

dired 開いてるとdrag and drop でファイルがコピーされてしまう。
コピーではなくただファイルを開いてほしい。

init.el

(setq dired-dnd-protocol-alist nil)

設定してEmacs再起動
(゚д゚)ウマー

参考リンク