このブログについて

Posted by muchag | 未分類 |
初回投稿:2007-03-01 (木) 2:33:38 | 最終更新:2016-01-28 (木) 10:32:52

このブログは、爺による「備忘録」です。
言葉の使い方をはじめ、間違っていることも多々あるかもしれません。
あくまでも「備忘録」ですので、これのブログを見て「怒っちゃやーよ!」

自己責任にて閲覧してくださいね
Posted by muchag | 未分類 |
初回投稿:2007-03-01 (木) 2:33:38 | 最終更新:2016-01-28 (木) 10:32:52

MySQL

Posted by muchag | Java,MySQL |
初回投稿:2019-11-05 (火) 22:15:47 | 最終更新:2019-11-06 (水) 19:36:04


GitHub:nkjmlab/nkjmlab-utils-jpdatum

【環境】
MySQL: 8.0.18
Eclipse:Pleiades All in One JAVA 2019-09 R (4.13.0)
Java: 1.8.0_221
ドライバ
入手先
MySQL 公式

あちこちの記事で、ドライバの入手先として
公式:MySQL Community Downloads Connector/J
を挙げていたけど、どうやって DL してよいのかわからなかった。

同ページに、Recommended Windows Download: と書いてあるから
MySQL インストールディレクトリに同梱されているのかと思ったけど
エクスプローラで、mysql-connector-java で検索してみたものの、ヒットせず。

Maven Repository

仕方がないので
Maven Repository:MySQL Connector/J 8.0.18
こちらの、Files:jar (2.2MB) から DL した。

2019-11-05 現在
mysql-connector-java-8.0.18.jar

配置&参照
[project]\WebContent\WEB-INF\lib\mysql-connector-java-8.0.18.jar

として配置。

ビルド・パス の設定。

接続

数多くサンプルがある中、下記が見やすかったので
不要な部分を削除して、そのままいただきました。
TASK NOTES:JavaでMySQLに接続してデータ操作をする(2015-04-14)


import java.sql.*;

public class MySQLConnector {
    public static void main(String[] args) {
        Connection con = null;
        try {
            // MySQLに接続
            con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "");
            System.out.println("MySQLに接続できました。");
        } catch (SQLException e) {
            System.out.println("MySQLに接続できませんでした。");
        } finally {
            if (con != null) {
                try {
                    con.close();
                } catch (SQLException e) {
                    System.out.println("MySQLのクローズに失敗しました。");
                }
            }
        }
    }
}
取得

Statement stm = con.createStatement();
String sql = "select * from programing";
ResultSet rs = stm.executeQuery(sql);

while(rs.next()){
    int id = rs.getInt("id");
    String name = rs.getString("name");
    System.out.println("取得結果 -> " + id + ":" + name);
}
更新

Statement stm = con.createStatement();
String sql = "insert into programing values(4, 'Python'), (5, 'Go')";
int result = stm.executeUpdate(sql);
System.out.println("更新件数は" + result + "です。");
参考サイト

TASK NOTES:JavaでMySQLに接続してデータ操作をする(2015-04-14)
→とても見やすく、コードは、ほぼそのまま真似させていただきました。

Posted by muchag | Java,MySQL |
初回投稿:2019-11-05 (火) 22:15:47 | 最終更新:2019-11-06 (水) 19:36:04

インストール -> 8.0.18

Posted by muchag | 未分類 |
初回投稿:2019-11-05 (火) 18:35:39 | 最終更新:2019-11-05 (火) 20:07:17

【環境】
MySQL: 8.0.15
Windows: 10 Pro 64bit
DL

公式:MySQL Community Downloads
から DL。

2019-11-05 現在
mysql-installer-community-8.0.18.0.msi
(Web 版は避けた)

Windows (x86, 32-bit), MSI Installer と書かれていたけど
公式:MySQL Community Downloads
こちらでは、Windows (x86, 32 & 64-bit), MSI Installer と書かれているので、
64bit もこれでよさそう。

また、DL しようとすると、Oracle アカウントについて聞かれるけど
[No thnaks, just start my download.] というリンクから、アカウントなしで DL できる。

インストール
  1. mysql-installer-community-8.0.18.0.msi ダブルクリック
  2. 「License Agreement」ダイアログは存在しなかった
  3. 「Choosing a Setup Type」ダイアログ
    1. [Developer Default] を選択
    2. [Next]
  4. 「Check Requirements」ダイアログ
    1. インストールするのに、要件を満たしていないものが列挙されているらしい
    2. MySQL For Excel 1.3.8:Visual Studio 2010 Tools for Office Runtime is not installed
    3. Connector/Python 8.0.18:Python (64-bit) is not installed
    4. ひとまずスルーして [Next]
    5. 継続警告ダイアログが出るので [Yes]
  5. 「Installation」ダイアログ
    1. [Execute]
    2. インストールが完了したら [Next]
  6. 「Product Configuration」ダイアログ
    1. [Next]
  7. 「High Availability」ダイアログ
    1. [Standalon MySQL Server / Classic MySQL Replication] を選択
    2. [Next]
  8. 「Type and Networking」ダイアログ
    1. デフォルトのまま
    2. [Next]
  9. 「Authentication Method」ダイアログ
    1. デフォルトのまま
    2. [Next]
  10. 「Accounts and Roles」ダイアログ
    1. MySQL Root Password:任意
    2. Repeat Password:上記と同一のもの
    3. [Next]
  11. 「Windows Service」ダイアログ
    1. [Configure MySQL Server as a Windows Service] にチェック
    2. Windows Service Name:MySQL8018
    3. [Start the MySQL Server at System Startup] のチェックを外す
    4. [Next]
  12. 「Apply Configuration」ダイアログ
    1. [Execute]
    2. [Finish]
  13. 「Product Configuration」ダイアログ
    1. [Next]
  14. 「MySQL Router Configuration」ダイアログ
    1. [Finish]
  15. 「Product Configuration」ダイアログ
    1. [Next]
  16. 「Connect to Server」ダイアログ
    1. Password:先程のもの
    2. [Check]
    3. [Next]
  17. 「Apply Configuration」ダイアログ
    1. [Execute]
    2. [Finish]
  18. 「Product Configuration」ダイアログ
    1. [Next]
  19. 「Installation Complete」ダイアログ
    1. [Finish]
インストール先

大概のアプリが、インストールウィザード内で
インストール先の選択があるけれど
MySQL には、それがなかったので、ちょっと焦った。

インストール先は、こちら。

C:\Program Files\MySQL

Shell

C:\Program Files\MySQL\MySQL Shell 8.0\bin\mysqlsh.exe

MySQLWorkbench

C:\Program Files\MySQL\MySQL Workbench 8.0 CE\MySQLWorkbench.exe
環境変数

環境変数

C:\Program Files\MySQL\MySQL Server 8.0\bin
動作確認

コマンドプロンプトを開く。

サービス

コマンドプロンプトを管理者権限で実行。


// 開始
net start mywql8018

// 終了
net stop mywql8018
接続
mysql -u root -p
Enter password: **********
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 8.0.18 MySQL Community Server - GPL

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
タイムゾーン

タイムゾーン

設定
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini

こちらをバックアップを取ってから、下記に従って追記。
my.cnf 8.0.x

参考サイト

DBOnline:MySQL Community Server 8.0.15のインストール

ProEngineer:MySQLのダウンロード&インストールと初期設定方法(2019-09-27)

Posted by muchag | 未分類 |
初回投稿:2019-11-05 (火) 18:35:39 | 最終更新:2019-11-05 (火) 20:07:17

‘COM 参照可能なマネージ クラス ‘ComboBoxUiaProvider’ のクラス インターフェイスを要求する…

Posted by muchag | C# |
初回投稿:2019-09-23 (月) 18:45:30 | 最終更新:2019-09-24 (火) 13:04:41

コンストラクタをクラス名と同じにしたら
エラーになって焦った。

【環境】
C#: 8.0
Visual Studio: 16.2.5(2019C)
エラー

ComboBox へ DataSource を設定していたら、下記エラーメッセージと遭遇した。

マネージド デバッグ アシスタント ‘NonComVisibleBaseClass’ :
‘COM 参照可能なマネージ クラス ‘ComboBoxUiaProvider’ のクラス インターフェイスを要求する QueryInterface 呼び出しが行われましたが、
このクラスは COM 参照可能ではないクラス ‘ComboBoxExAccessibleObject’ から派生しているため、
QueryInterface は失敗します。
これは、COM 参照可能ではない基本クラスが COM バージョン管理規則によって制約されるのを防ぐためです。’
状況
Visual Studio

Visual Studio からは、「例外がスローされました」というメッセージを受け取ったけど
Exception の種類は不明。

try .. catch で、Exception を拾おうとしても、拾えない。

ロジック

コンボボックスの選択肢が、ユーザの操作状況によって変化するので
その度に、ComboBox.DataSource を設定し直す、というもの。


ComboBox1.DataSource = Items; // ここで例外
ComboBox1.DisplayMember = "ItemDisp";
ComboBox1.ValueMember = "ItemValue";

同じコードで DataSource を変更している
他の ComboBox ではこれで問題ないのに、ここだけ上記エラーとなる。

原因

nonComVisibleBaseClass MDA

解決?

原因は、上記なんだろうけど、
どうしていいかわからないので
デバッグ最中に出てくる
画面右下のペイン [例外設定] にて
[Managed Debugging Assistants]-[NonComVisibleBaseClass] のチェックを外した。

Posted by muchag | C# |
初回投稿:2019-09-23 (月) 18:45:30 | 最終更新:2019-09-24 (火) 13:04:41

インストール -> 8.0.15

Posted by muchag | CentOS,MySQL,VirtualBox |
初回投稿:2019-02-26 (火) 22:09:16 | 最終更新:2019-03-09 (土) 17:00:59

【環境】
MySQL: 8.0.15
CentOS: 7.6.1810
VirtualBox グラフィカルユーザーインターフェース: 5.1.24 r117012 (Qt5.6.2)
リポジトリ
取得

rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm

noarch の前の数値が、前回の 1 から 2 へ増えている。
気になるけど、次回!

確認

yum repolist all | grep mysql
インストール

yum install -y mysql-community-server
起動と停止

// 起動
systemctl start mysqld.service

// 停止
systemctl stop mysqld.service

// 自動起動
systemctl enable mysqld.service
systemctl list-unit-files -t service | grep mysqld
mysqld.service                                enabled
mysqld@.service                               disabled
初期パスワード
確認

cat /var/log/mysqld.log | grep "A temporary password"
2019-03-09T05:40:56.206659Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: hogehoge
変更
ログイン

mysql -uroot -p -hlocalhost
Enter password:

上記初期パスワードを入力。

変更

今回は、my.cnf で設定しただけではダメで
下記処理が必要だった。

パスワード変更
まで面倒なことをしなくても


ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass';

こちらでうまくいった。


use mysql;
select user, host, plugin from user;
+------------------+-----------+-----------------------+
| user             | host      | plugin                |
+------------------+-----------+-----------------------+
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| root             | localhost | mysql_native_password |
+------------------+-----------+-----------------------+
4 rows in set (0.00 sec)
タイムゾーン

タイムゾーン

設定

my.cnf 8.0.x

参考サイト

Qiita:CentOS7にMySQL8.0をインストール(2019-02-17)

試行錯誤
起動しない
原因想像

インストール直後に例の「初期パスワードを調べなきゃ」と思ってやり方を探していた際
Qiita:MySQL 8.0 初期設定覚書(2019-02-07)
を見つけた。

初期パスワードを調べなくてよい方法が書かれているようだったので
ロクに調べもせずに、盲従して


mysqld  --initialize-insecure
mysql_secure_installation

Securing the MySQL server deployment.

Enter password for user root:

となり、参考サイトとは異なる道順となってしまった。

あれ?と思い、


systemctl  enable  mysqld
systemctl  start   mysqld
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.

と起動してみたところ、エラーとなった。


systemctl  status   mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since 水 2019-02-27 00:57:05 JST; 16s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 15500 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS (code=exited, status=1/FAILURE)
  Process: 15483 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 15500 (code=exited, status=1/FAILURE)
   Status: "SERVER_BOOTING"
    Error: 2 (そのようなファイルやディレクトリはありません)

 2月 27 00:57:05 localhost.localdomain systemd[1]: Starting MySQL Server...
 2月 27 00:57:05 localhost.localdomain systemd[1]: mysqld.service: main process exited, code=exited, status=1/FAILURE
 2月 27 00:57:05 localhost.localdomain systemd[1]: Failed to start MySQL Server.
 2月 27 00:57:05 localhost.localdomain systemd[1]: Unit mysqld.service entered failed state.
 2月 27 00:57:05 localhost.localdomain systemd[1]: mysqld.service failed.
初期パスワード確認

ちなみにこのタイミングで初期パスワードを確認してみたら


grep -i password /var/log/mysqld.log
2019-02-26T15:54:54.194358Z 5 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.

となった。

エラー

ログを確認してみたところ


vi /var/log/mysqld.log

2019-02-26T15:57:05.414331Z 1 [ERROR] [MY-012271] [InnoDB] The innodb_system data file 'ibdata1' must be writable

となっていたので

権限確認

当該ファイルの場所を探し


find / -name 'ibdata1'
/var/lib/mysql/ibdata1

当該ファイルの権限を確認してみたら


ll /var/lib/mysql

ほとんどの権限者が root になっていた。

他の仮想マシンを参照したところ
全ての権限者が mysql になっていた。

あちゃー。。。

再インストール

rm -rf /var/lib/mysql/*
yum remove mysql-community-server
yum install -y mysql-community-server

この時点では


ll /var/lib/mysql
合計 0

続いて


systemctl status mysqld.service
systemctl start mysqld.service

こうしたら


ll /var/lib/mysql
合計 168000
drwxr-x--- 2 mysql mysql      187  3月  9 14:41 #innodb_temp
-rw-r----- 1 mysql mysql       56  3月  9 14:40 auto.cnf
-rw-r----- 1 mysql mysql      155  3月  9 14:41 binlog.000001
-rw-r----- 1 mysql mysql       16  3月  9 14:41 binlog.index
-rw------- 1 mysql mysql     1680  3月  9 14:40 ca-key.pem
-rw-r--r-- 1 mysql mysql     1112  3月  9 14:40 ca.pem
-rw-r--r-- 1 mysql mysql     1112  3月  9 14:40 client-cert.pem
-rw------- 1 mysql mysql     1680  3月  9 14:40 client-key.pem
-rw-r----- 1 mysql mysql     5748  3月  9 14:40 ib_buffer_pool
-rw-r----- 1 mysql mysql 50331648  3月  9 14:41 ib_logfile0
-rw-r----- 1 mysql mysql 50331648  3月  9 14:40 ib_logfile1
-rw-r----- 1 mysql mysql 12582912  3月  9 14:41 ibdata1
-rw-r----- 1 mysql mysql 12582912  3月  9 14:41 ibtmp1
drwxr-x--- 2 mysql mysql      143  3月  9 14:40 mysql
-rw-r----- 1 mysql mysql 25165824  3月  9 14:41 mysql.ibd
srwxrwxrwx 1 mysql mysql        0  3月  9 14:41 mysql.sock
-rw------- 1 mysql mysql        6  3月  9 14:41 mysql.sock.lock
drwxr-x--- 2 mysql mysql     4096  3月  9 14:40 performance_schema
-rw------- 1 mysql mysql     1680  3月  9 14:40 private_key.pem
-rw-r--r-- 1 mysql mysql      452  3月  9 14:40 public_key.pem
-rw-r--r-- 1 mysql mysql     1112  3月  9 14:40 server-cert.pem
-rw------- 1 mysql mysql     1680  3月  9 14:40 server-key.pem
drwxr-x--- 2 mysql mysql       28  3月  9 14:40 sys
-rw-r----- 1 mysql mysql 10485760  3月  9 14:41 undo_001
-rw-r----- 1 mysql mysql 10485760  3月  9 14:41 undo_002

無事に権限者が mysql になった。

前回は何だったのかしらね。。。

Posted by muchag | CentOS,MySQL,VirtualBox |
初回投稿:2019-02-26 (火) 22:09:16 | 最終更新:2019-03-09 (土) 17:00:59

コマンド

Posted by muchag | PowerShell |
初回投稿:2018-12-15 (土) 12:41:33 | 最終更新:2018-12-15 (土) 12:50:59
基本

PowerShell のコマンドの基本は
「動詞」-「名詞」

例えば、Get-Content。

ただし、Shell コマンドに慣れている人にも使いやすいように
エイリアスが存在する。

エイリアス

alias

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           % -> ForEach-Object
Alias           ? -> Where-Object
Alias           ac -> Add-Content
Alias           asnp -> Add-PSSnapin
Alias           cat -> Get-Content
Alias           cd -> Set-Location
Alias           CFS -> ConvertFrom-String                          3.1.0.0    Microsoft.PowerShell.Utility
Alias           chdir -> Set-Location
Alias           clc -> Clear-Content
Alias           clear -> Clear-Host
Alias           clhy -> Clear-History
Alias           cli -> Clear-Item
Alias           clp -> Clear-ItemProperty
Alias           cls -> Clear-Host
Alias           clv -> Clear-Variable
Alias           cnsn -> Connect-PSSession
Alias           compare -> Compare-Object
Alias           copy -> Copy-Item
Alias           cp -> Copy-Item
Alias           cpi -> Copy-Item
Alias           cpp -> Copy-ItemProperty
Alias           curl -> Invoke-WebRequest
Alias           cvpa -> Convert-Path
Alias           dbp -> Disable-PSBreakpoint
Alias           del -> Remove-Item
Alias           diff -> Compare-Object
Alias           dir -> Get-ChildItem
Alias           dnsn -> Disconnect-PSSession
Alias           ebp -> Enable-PSBreakpoint
Alias           echo -> Write-Output
Alias           epal -> Export-Alias
Alias           epcsv -> Export-Csv
Alias           epsn -> Export-PSSession
Alias           erase -> Remove-Item
Alias           etsn -> Enter-PSSession
Alias           exsn -> Exit-PSSession
Alias           fc -> Format-Custom
Alias           fhx -> Format-Hex                                  3.1.0.0    Microsoft.PowerShell.Utility
Alias           fl -> Format-List
Alias           foreach -> ForEach-Object
Alias           ft -> Format-Table
Alias           fw -> Format-Wide
Alias           gal -> Get-Alias
Alias           gbp -> Get-PSBreakpoint
Alias           gc -> Get-Content
Alias           gcb -> Get-Clipboard                               3.1.0.0    Microsoft.PowerShell.Management
Alias           gci -> Get-ChildItem
Alias           gcm -> Get-Command
Alias           gcs -> Get-PSCallStack
Alias           gdr -> Get-PSDrive
Alias           ghy -> Get-History
Alias           gi -> Get-Item
Alias           gin -> Get-ComputerInfo                            3.1.0.0    Microsoft.PowerShell.Management
Alias           gjb -> Get-Job
Alias           gl -> Get-Location
Alias           gm -> Get-Member
Alias           gmo -> Get-Module
Alias           gp -> Get-ItemProperty
Alias           gps -> Get-Process
Alias           gpv -> Get-ItemPropertyValue
Alias           group -> Group-Object
Alias           gsn -> Get-PSSession
Alias           gsnp -> Get-PSSnapin
Alias           gsv -> Get-Service
Alias           gtz -> Get-TimeZone                                3.1.0.0    Microsoft.PowerShell.Management
Alias           gu -> Get-Unique
Alias           gv -> Get-Variable
Alias           gwmi -> Get-WmiObject
Alias           h -> Get-History
Alias           history -> Get-History
Alias           icm -> Invoke-Command
Alias           iex -> Invoke-Expression
Alias           ihy -> Invoke-History
Alias           ii -> Invoke-Item
Alias           ipal -> Import-Alias
Alias           ipcsv -> Import-Csv
Alias           ipmo -> Import-Module
Alias           ipsn -> Import-PSSession
Alias           irm -> Invoke-RestMethod
Alias           ise -> powershell_ise.exe
Alias           iwmi -> Invoke-WmiMethod
Alias           iwr -> Invoke-WebRequest
Alias           kill -> Stop-Process
Alias           lp -> Out-Printer
Alias           ls -> Get-ChildItem
Alias           man -> help
Alias           md -> mkdir
Alias           measure -> Measure-Object
Alias           mi -> Move-Item
Alias           mount -> New-PSDrive
Alias           move -> Move-Item
Alias           mp -> Move-ItemProperty
Alias           mv -> Move-Item
Alias           nal -> New-Alias
Alias           ndr -> New-PSDrive
Alias           ni -> New-Item
Alias           nmo -> New-Module
Alias           npssc -> New-PSSessionConfigurationFile
Alias           nsn -> New-PSSession
Alias           nv -> New-Variable
Alias           ogv -> Out-GridView
Alias           oh -> Out-Host
Alias           popd -> Pop-Location
Alias           ps -> Get-Process
Alias           pushd -> Push-Location
Alias           pwd -> Get-Location
Alias           r -> Invoke-History
Alias           rbp -> Remove-PSBreakpoint
Alias           rcjb -> Receive-Job
Alias           rcsn -> Receive-PSSession
Alias           rd -> Remove-Item
Alias           rdr -> Remove-PSDrive
Alias           ren -> Rename-Item
Alias           ri -> Remove-Item
Alias           rjb -> Remove-Job
Alias           rm -> Remove-Item
Alias           rmdir -> Remove-Item
Alias           rmo -> Remove-Module
Alias           rni -> Rename-Item
Alias           rnp -> Rename-ItemProperty
Alias           rp -> Remove-ItemProperty
Alias           rsn -> Remove-PSSession
Alias           rsnp -> Remove-PSSnapin
Alias           rujb -> Resume-Job
Alias           rv -> Remove-Variable
Alias           rvpa -> Resolve-Path
Alias           rwmi -> Remove-WmiObject
Alias           sajb -> Start-Job
Alias           sal -> Set-Alias
Alias           saps -> Start-Process
Alias           sasv -> Start-Service
Alias           sbp -> Set-PSBreakpoint
Alias           sc -> Set-Content
Alias           scb -> Set-Clipboard                               3.1.0.0    Microsoft.PowerShell.Management
Alias           select -> Select-Object
Alias           set -> Set-Variable
Alias           shcm -> Show-Command
Alias           si -> Set-Item
Alias           sl -> Set-Location
Alias           sleep -> Start-Sleep
Alias           sls -> Select-String
Alias           sort -> Sort-Object
Alias           sp -> Set-ItemProperty
Alias           spjb -> Stop-Job
Alias           spps -> Stop-Process
Alias           spsv -> Stop-Service
Alias           start -> Start-Process
Alias           stz -> Set-TimeZone                                3.1.0.0    Microsoft.PowerShell.Management
Alias           sujb -> Suspend-Job
Alias           sv -> Set-Variable
Alias           swmi -> Set-WmiInstance
Alias           tee -> Tee-Object
Alias           trcm -> Trace-Command
Alias           type -> Get-Content
Alias           wget -> Invoke-WebRequest
Alias           where -> Where-Object
Alias           wjb -> Wait-Job
Alias           write -> Write-Output
Posted by muchag | PowerShell |
初回投稿:2018-12-15 (土) 12:41:33 | 最終更新:2018-12-15 (土) 12:50:59

Classic Editor

Posted by muchag | WordPress |
初回投稿:2018-12-07 (金) 13:54:52 | 最終更新:2018-12-07 (金) 15:33:44

【環境】
Classic Editor: 1.1
WordPress: 5.0.0
Gutenberg

本日、WordPress に記事を書いていたら
WordPress 更新のアラートが出ていた。

早速更新してみると、エディタがえらいことに!

なにこれ?!
と思って、Google 先生へ質問してみると
5.0.0 から、Gutenberg という新しいエディタになったそうな。

AddQuicktag を利用して設定してきたカスタムタグを含めて
リッチテキストエディタがゴッソリなくなっていた。 😥

Gutenberg プラグインの説明を見ると、

ブロックは、今まで異なる方法でカバーされていた
「ショートコード」「埋め込み」「ウィジェット」「投稿フォーマット」
「カスタム投稿タイプ」「テーマオプション」「メタボックス」
その他のフォーマット要素などを統一的に進化させたものです。
ユーザーは、WordPress でできる幅広い機能を、明快で一貫した方法で利用できます。

とあるので、こちらでもカスタムタグを、しかもプラグインなしで利用できそうだけど
今は学習時間を確保できないので、以前のスタイルへ戻したい!

Classic Editor

それを実現できるのが、Classic Editor プラグインだそうな。

早速検索して入れてみると
見慣れた編集画面へ戻った。

ふぅ。。。

設定
  • 「すべてのユーザーのデフォルトエディター」
  • 「ユーザーにエディターの切り替えを許可します」
  • 項目が追加されている。

    手動切替

    上記の設定をしてあっても
    Gutenberg になっているときがあるので
    その際は、投稿画面の右サイドバーに「エディター」というカテゴリが追加されているので
    [クラシックエディターに切り替え] をクリックすると
    Classic Editor 画面になる。

    反対に、Gutenberg を試したくなったら
    [ブロックエディターに切り替え] で、Gutenberg 画面になる。

    Posted by muchag | WordPress |
    初回投稿:2018-12-07 (金) 13:54:52 | 最終更新:2018-12-07 (金) 15:33:44

    Laravel Mix -> Hackers Galore 様編

    Posted by muchag | CakePHP 3.x,Library & PlugIn & AddIn,困ったTT |
    初回投稿:2018-12-07 (金) 13:31:02 | 最終更新:2018-12-11 (火) 23:13:04

    【環境】
    CakePHP: 3.6.5
    php: 7.3.0 rc6
    手順
    シンボリックリンク問題対応

    シンボリックリンク権限問題 解決のために
    シンボリックリンクを作成。

    
    mkdir /media/sf_CakeTest/node_modules
    mkdir /var/CakeTest
    mkdir /var/CakeTest/node_modules
    mount --bind /var/CakeTest/node_modules /media/sf_CakeTest/node_modules
    
    package.json 配置

    https://github.com/laravel/laravel/blob/master/package.json
    を CakePHP3 のルートディレクトリへ配置。

    webroot 内に配置しないように。

    私は、直接 Laravel 5.7.15 からコピペした。

    インストール
    
    cd /media/sf_CakeTest
    yarn install
    
    imagemin

    imagemin についての警告が出るので、インストール。

    
    warning "laravel-mix > img-loader@3.0.1" has unmet peer dependency "imagemin@^5.0.0 || ^6.0.0".
    

    こちらを解決するために、imagemin をインストール。

    
    yarn add -D imagemin
    yarn add v1.12.3
    [1/4] Resolving packages...
    [2/4] Fetching packages...
    info fsevents@1.2.4: The platform "linux" is incompatible with this module.
    info "fsevents@1.2.4" is an optional dependency and failed compatibility check. Excluding it from installation.
    [3/4] Linking dependencies...
    [4/4] Building fresh packages...
    success Saved lockfile.
    success Saved 14 new dependencies.
    info Direct dependencies
    └─ imagemin@6.0.0
    info All dependencies
    ├─ @mrmlnc/readdir-enhanced@2.2.1
    ├─ @nodelib/fs.stat@1.1.3
    ├─ arrify@1.0.1
    ├─ call-me-maybe@1.0.1
    ├─ dir-glob@2.0.0
    ├─ fast-glob@2.2.4
    ├─ file-type@8.1.0
    ├─ glob-to-regexp@0.3.0
    ├─ globby@8.0.1
    ├─ ignore@3.3.10
    ├─ imagemin@6.0.0
    ├─ merge2@1.2.3
    ├─ p-pipe@1.2.0
    └─ replace-ext@1.0.0
    Done in 9.96s.
    
    webpack.mix.js 配置

    https://github.com/laravel/laravel/blob/master/webpack.mix.js
    を CakePHP3 のルートディレクトリへ配置。

    私は、直接 Laravel 5.7.15 からコピペした。

    assets ディレクトリ配置
    /assets/js/app.js
    /assets/sass/app.sass

    を配置。

    私は、直接 Laravel 5.7.15 からコピペした。

    webpack.mix.js 修正

    参考サイトのものを基に、自分の環境に合わせて改変。

    /webpack.mix.js
    
    mix.js('resources/js/app.js', 'public/js')
       .sass('resources/sass/app.scss', 'public/css');
    

    
    mix.setPublicPath('webroot'); // since not in Laravel, need to help Mix along here
    mix.js('assets/js/app.js', 'webroot/js')
    .sass('assets/sass/app.scss', '../assets/build/css')
    .sass('assets/sass/self.scss', '../assets/build/css')
    .styles([
        'assets/build/css/app.css',
        'assets/build/css/self.css'
        ], 'webroot/css/app.css');
    
    テストコード

    参考サイトにはテストコードを記述する件があるけど
    Laravel からコピペしてきた、ExampleComponent.vue があるので
    テストコードはスキップ。

    組み込み
    /src/Template/Pages/home.ctp

    header 閉じタグ直後に3行追加。

    
    

    body 閉じタグ直前に2行追加。

    
    
    webpack 始動
    
    npm run watch
    
     DONE  Compiled successfully in 8082ms                                                                                                                                                                                                                                                                               15:57:56
                                                                                                                                                                                                                                                                                                                           Asset     Size  Chunks                    Chunk Names
      /js/app.js  1.38 MB       0  [emitted]  [big]  /js/app
    /css/app.css   198 kB       0  [emitted]         /js/app
    
    表示確認

    CakePHP3 のロゴ黒帯下に

    Example Component
    I’m an example component.

    と、ExampleComponent.vue の内容が表示された。

    やた~!!

    ところが・・・

    その後の使い方で 困ったこと が・・・。

    webpack.mix.js において
    ファイル統合をしようとすると
    表示時にデベロッパーツールのコンソールへ謎のエラー、
    というか、
    コンパイル後の app.js へ、謎の追記がされる。

    stack overflow:Uncaught SyntaxError: Invalid or unexpected token in file compiled by Browserify(2016-06-10)
    こちらと同じ症状っぽいんだけど、
    上記は Elixir 時代のものだし、提示されている方法が Nginx のもので
    私の環境は Apache なので、どうしてよいかわからずじまい。

    webpack.mix.js
    
    mix.setPublicPath('webroot'); // since not in Laravel, need to help Mix along here
    mix.js('resources/assets/js/app.js', 'webroot/js')
    .sass('resources/assets/sass/app.scss', 'webroot/css');
    

    これだと問題ないけど

    
    mix.setPublicPath('webroot'); // since not in Laravel, need to help Mix along here
    mix.js('assets/js/app.js', 'webroot/js')
    .sass('assets/sass/app.scss', '../assets/build/css')
    .sass('assets/sass/self.scss', '../assets/build/css')
    .styles([
        'assets/build/css/app.css',
        'assets/build/css/self.css'
        ], 'webroot/css/app.css');
    

    これだと
    コンパイルは無事に通り、ファイルも生成されるけど
    Uncaught SyntaxError: Invalid or unexpected token となり
    デベロッパーツール上では、app.js に ******************************************** な感じのが表示される。
    コンパイル後の app.js ファイルを直接見てもそんな記述はないけど。。。

    わかる方がいらしたら、ぜひ情報をください。

    試行錯誤
    yarn install
    
    yarn install --no-bin-links
    yarn install v1.12.3
    info No lockfile found.
    [1/4] Resolving packages...
    warning laravel-mix > autoprefixer > browserslist@2.11.3: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
    warning laravel-mix > css-loader > cssnano > autoprefixer > browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
    warning laravel-mix > css-loader > cssnano > postcss-merge-rules > browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
    warning laravel-mix > css-loader > cssnano > postcss-merge-rules > caniuse-api > browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
    [2/4] Fetching packages...
    info fsevents@1.2.4: The platform "linux" is incompatible with this module.
    info "fsevents@1.2.4" is an optional dependency and failed compatibility check. Excluding it from installation.
    [3/4] Linking dependencies...
    warning "laravel-mix > img-loader@3.0.1" has unmet peer dependency "imagemin@^5.0.0 || ^6.0.0".
    [4/4] Building fresh packages...
    success Saved lockfile.
    Done in 120.15s.
    
    解決1
    
    warning laravel-mix > autoprefixer > browserslist@2.11.3: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
    warning laravel-mix > css-loader > cssnano > autoprefixer > browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
    warning laravel-mix > css-loader > cssnano > postcss-merge-rules > browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
    warning laravel-mix > css-loader > cssnano > postcss-merge-rules > caniuse-api > browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist >3.0 config used in other tools.
    

    こちらの4行を解決するために

    /package.json

    へ、下記3行を追記。

    
    "browserslist": [
        "> 1%",
        "last 2 versions"
    ],
    

    と思ったけど、これでは解決しない。

    解決2

    こちらは、yarn install 前にはできないので
    下記警告が出てから対処。

    
    warning "laravel-mix > img-loader@3.0.1" has unmet peer dependency "imagemin@^5.0.0 || ^6.0.0".
    

    こちらを解決するために、imagemin をインストール。

    
    yarn add -D imagemin
    
    npm run watch1

    起動してみると

    
    npm run watch
    
    __ snip __
    
    sh: cross-env: コマンドが見つかりません
    

    と怒られた。

    解決

    teratail:npm run watch時に「sh: 1: cross-env: not found」のエラー発生(2018-04-05)
    を参考にして、package.json を、下記の通り編集。

    /package.json
    
    {
        "private": true,
        "scripts": {
            "dev": "npm run development",
            "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
            "watch": "npm run development -- --watch",
            "watch-poll": "npm run watch -- --watch-poll",
            "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
            "prod": "npm run production",
            "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
        },
    }
    

    
    {
        "private": true,
        "scripts": {
            "dev": "npm run development",
            "development": "node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
            "watch": "npm run development -- --watch",
            "watch-poll": "npm run watch -- --watch-poll",
            "hot": "node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
            "prod": "npm run production",
            "production": "node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
        },
    }
    
    npm run watch2

    再び、webpack を起動してみると

    
    npm run watch
    
    __ snip __
    
    These dependencies were not found:
    
    * /media/sf_CakeTest/resources/assets/js/app.js in multi ./resources/assets/js/app.js ./resources/assets/sass/app.scss
    * /media/sf_CakeTest/resources/assets/sass/app.scss in multi ./resources/assets/js/app.js ./resources/assets/sass/app.scss
    
    解決

    これは、resources ディレクトリを Laravel からコピペしたため
    assets ディレクトリを配置し忘れていた。

    npm run watch3

    再び、webpack を起動してみると

    
    npm run watch
    
    __ snip __
    
     error  in ./resources/assets/sass/app.scss
    
    Module build failed: Error: ENOENT: no such file or directory, scandir '/media/sf_CakeTest/node_modules/node-sass/vendor'
    
    npm rebuild node-sass

    Qiita:EC2環境でLaravelのセットアップ中にnode-sassのvenderディレクトリが見つからないと言われたときの対処法(2016-07-21)
    を参考に npm rebuild node-sass してみた。

    
    npm rebuild node-sass
    npm ERR! path ../node-sass/bin/node-sass
    npm ERR! code EROFS
    npm ERR! errno -30
    npm ERR! syscall symlink
    npm ERR! rofs EROFS: read-only file system, symlink '../node-sass/bin/node-sass' -> '/media/sf_CakeTest/node_modules/.bin/node-sass'
    npm ERR! rofs Often virtualized file systems, or other file systems
    npm ERR! rofs that don't support symlinks, give this error.
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /root/.npm/_logs/2018-12-07T05_28_07_044Z-debug.log
    
    シンボリックリンク権限問題

    件の シンボリックリンク権限問題 が出たので

    
    mkdir /var/CakeTest
    mkdir /var/CakeTest/node_modules
    mount --bind /var/CakeTest/node_modules /media/sf_CakeTest/node_modules
    
    npm rebuild node-sass再

    で、もっかい

    
    npm rebuild node-sass
    
    > node-sass@4.10.0 install /media/sf_CakeTest/node_modules/node-sass
    > node scripts/install.js
    
    node-sass build Binary found at /media/sf_CakeTest/node_modules/node-sass/vendor/linux-x64-57/binding.node
    
    > node-sass@4.10.0 postinstall /media/sf_CakeTest/node_modules/node-sass
    > node scripts/build.js
    
    Binary found at /media/sf_CakeTest/node_modules/node-sass/vendor/linux-x64-57/binding.node
    Testing binary
    Binary is fine
    node-sass@4.10.0 /media/sf_CakeTest/node_modules/node-sass
    

    それでも vendor ディレクトリは生成されなかった。

    npm install node-sass@3.7.0

    そこで、
    stack overflow:Error: ENOENT: no such file or directory, scandir
    に載っていた

    
    npm install node-sass@3.7.0
    

    を実行してみると
    大量のログが出たけど
    vendor ディレクトリは生成されなかった。

    解決?

    ここで試しに webpack を起動。

    
    npm run dev
    

    すると、コンパイル完了。

    どの時点で、不具合が解消されたか不明。
    次回試行まだお預け。

    予想
    
    npm rebuild node-sass
    

    こちらで入ってきた node-sass は 4.10.0

    そして、3.7.0 を入れたらうまくいったので
    4.10.0 の不具合?

    参考サイト

    Hackers Galore:Using Laravel Mix with CakePHP 3(2018-04-29)

    ログ
    sh: cross-env: コマンドが見つかりません
    
    npm run watch
    
    > @ watch /media/sf_CakeTest
    > npm run development -- --watch
    
    
    > @ development /media/sf_CakeTest
    > cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js "--watch"
    
    sh: cross-env: コマンドが見つかりません
    npm ERR! file sh
    npm ERR! code ELIFECYCLE
    npm ERR! errno ENOENT
    npm ERR! syscall spawn
    npm ERR! @ development: `cross-env NODE_ENV=development node_modules/webpack/bin
    npm ERR! spawn ENOENT
    npm ERR!
    npm ERR! Failed at the @ development script.
    npm ERR! This is probably not a problem with npm. There is likely additional log
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /root/.npm/_logs/2018-12-07T04_27_40_334Z-debug.log
    npm ERR! code ELIFECYCLE
    npm ERR! errno 1
    npm ERR! @ watch: `npm run development -- --watch`
    npm ERR! Exit status 1
    npm ERR!
    npm ERR! Failed at the @ watch script.
    npm ERR! This is probably not a problem with npm. There is likely additional log
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /root/.npm/_logs/2018-12-07T04_27_40_345Z-debug.log
    
    ERROR in multi ./resources/assets/js/app.js ./resources/assets/sass/app.scss
    
    npm run watch
    
    ERROR  Failed to compile with 2 errors                                                                                                                                                                                                                                                                              14:16:59
    
    These dependencies were not found:
    
    * /media/sf_CakeTest/resources/assets/js/app.js in multi ./resources/assets/js/app.js ./resources/assets/sass/app.scss
    * /media/sf_CakeTest/resources/assets/sass/app.scss in multi ./resources/assets/js/app.js ./resources/assets/sass/app.scss
    
    To install them, you can run: npm install --save /media/sf_CakeTest/resources/assets/js/app.js /media/sf_CakeTest/resources/assets/sass/app.scss                                                                                                                                                                     Asset     Size  Chunks             Chunk Names
    /js/app.js  2.76 kB       0  [emitted]  /js/app
    
    ERROR in multi ./resources/assets/js/app.js ./resources/assets/sass/app.scss
    Module not found: Error: Can't resolve '/media/sf_CakeTest/resources/assets/js/app.js' in '/media/sf_CakeTest'
     @ multi ./resources/assets/js/app.js ./resources/assets/sass/app.scss
    
    ERROR in multi ./resources/assets/js/app.js ./resources/assets/sass/app.scss
    Module not found: Error: Can't resolve '/media/sf_CakeTest/resources/assets/sass/app.scss' in '/media/sf_CakeTest'
     @ multi ./resources/assets/js/app.js ./resources/assets/sass/app.scss
    
    Module build failed: Error: ENOENT: no such file or directory, scandir ‘/media/sf_CakeTest/node_modules/node-sass/vendor’
    
    npm run watch
    
    > @ watch /media/sf_CakeTest
    > npm run development -- --watch
    
    
    > @ development /media/sf_CakeTest
    > node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js "--watch"
    
     10% building modules 1/1 modules 0 active
    Webpack is watching the files…
                                                                                                                                                                                                                                                                                        95% emitting                             
     ERROR  Failed to compile with 2 errors                                                                                                                                                                                                                                                                              14:25:46
    
     error  in ./resources/assets/sass/app.scss
    
    Module build failed: Error: ENOENT: no such file or directory, scandir '/media/sf_CakeTest/node_modules/node-sass/vendor'
        at Object.fs.readdirSync (fs.js:904:18)
        at Object.getInstalledBinaries (/media/sf_CakeTest/node_modules/node-sass/lib/extensions.js:130:13)
        at foundBinariesList (/media/sf_CakeTest/node_modules/node-sass/lib/errors.js:20:15)
        at foundBinaries (/media/sf_CakeTest/node_modules/node-sass/lib/errors.js:15:5)
        at Object.module.exports.missingBinary (/media/sf_CakeTest/node_modules/node-sass/lib/errors.js:45:5)
        at module.exports (/media/sf_CakeTest/node_modules/node-sass/lib/binding.js:15:30)
        at Object. (/media/sf_CakeTest/node_modules/node-sass/lib/index.js:14:35)
        at Module._compile (module.js:653:30)
        at Object.Module._extensions..js (module.js:664:10)
        at Module.load (module.js:566:32)
        at tryModuleLoad (module.js:506:12)
        at Function.Module._load (module.js:498:3)
        at Module.require (module.js:597:17)
        at require (internal/module.js:11:18)
        at Object. (/media/sf_CakeTest/node_modules/sass-loader/lib/loader.js:3:14)
        at Module._compile (module.js:653:30)
        at Object.Module._extensions..js (module.js:664:10)
        at Module.load (module.js:566:32)
        at tryModuleLoad (module.js:506:12)
        at Function.Module._load (module.js:498:3)
        at Module.require (module.js:597:17)
        at require (internal/module.js:11:18)
        at loadLoader (/media/sf_CakeTest/node_modules/loader-runner/lib/loadLoader.js:13:17)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:169:2)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:165:10)
        at /media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:173:18
        at loadLoader (/media/sf_CakeTest/node_modules/loader-runner/lib/loadLoader.js:36:3)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:169:2)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:165:10)
        at /media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:173:18
    
     @ ./resources/assets/sass/app.scss 4:14-266
     @ multi ./resources/assets/js/app.js ./resources/assets/sass/app.scss
    
     error  in ./resources/assets/sass/app.scss
    
    Module build failed: ModuleBuildError: Module build failed: Error: ENOENT: no such file or directory, scandir '/media/sf_CakeTest/node_modules/node-sass/vendor'
        at Object.fs.readdirSync (fs.js:904:18)
        at Object.getInstalledBinaries (/media/sf_CakeTest/node_modules/node-sass/lib/extensions.js:130:13)
        at foundBinariesList (/media/sf_CakeTest/node_modules/node-sass/lib/errors.js:20:15)
        at foundBinaries (/media/sf_CakeTest/node_modules/node-sass/lib/errors.js:15:5)
        at Object.module.exports.missingBinary (/media/sf_CakeTest/node_modules/node-sass/lib/errors.js:45:5)
        at module.exports (/media/sf_CakeTest/node_modules/node-sass/lib/binding.js:15:30)
        at Object. (/media/sf_CakeTest/node_modules/node-sass/lib/index.js:14:35)
        at Module._compile (module.js:653:30)
        at Object.Module._extensions..js (module.js:664:10)
        at Module.load (module.js:566:32)
        at tryModuleLoad (module.js:506:12)
        at Function.Module._load (module.js:498:3)
        at Module.require (module.js:597:17)
        at require (internal/module.js:11:18)
        at Object. (/media/sf_CakeTest/node_modules/sass-loader/lib/loader.js:3:14)
        at Module._compile (module.js:653:30)
        at Object.Module._extensions..js (module.js:664:10)
        at Module.load (module.js:566:32)
        at tryModuleLoad (module.js:506:12)
        at Function.Module._load (module.js:498:3)
        at Module.require (module.js:597:17)
        at require (internal/module.js:11:18)
        at loadLoader (/media/sf_CakeTest/node_modules/loader-runner/lib/loadLoader.js:13:17)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:169:2)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:165:10)
        at /media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:173:18
        at loadLoader (/media/sf_CakeTest/node_modules/loader-runner/lib/loadLoader.js:36:3)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:169:2)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:165:10)
        at /media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:173:18
        at runLoaders (/media/sf_CakeTest/node_modules/webpack/lib/NormalModule.js:195:19)
        at /media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:364:11
        at /media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:170:18
        at loadLoader (/media/sf_CakeTest/node_modules/loader-runner/lib/loadLoader.js:27:11)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:169:2)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:165:10)
        at /media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:173:18
        at loadLoader (/media/sf_CakeTest/node_modules/loader-runner/lib/loadLoader.js:36:3)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:169:2)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:165:10)
        at /media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:173:18
        at loadLoader (/media/sf_CakeTest/node_modules/loader-runner/lib/loadLoader.js:36:3)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:169:2)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:165:10)
        at /media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:173:18
        at loadLoader (/media/sf_CakeTest/node_modules/loader-runner/lib/loadLoader.js:36:3)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:169:2)
        at runLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:362:2)
        at NormalModule.doBuild (/media/sf_CakeTest/node_modules/webpack/lib/NormalModule.js:182:3)
        at NormalModule.build (/media/sf_CakeTest/node_modules/webpack/lib/NormalModule.js:275:15)
        at Compilation.buildModule (/media/sf_CakeTest/node_modules/webpack/lib/Compilation.js:157:10)
        at moduleFactory.create (/media/sf_CakeTest/node_modules/webpack/lib/Compilation.js:460:10)
        at factory (/media/sf_CakeTest/node_modules/webpack/lib/NormalModuleFactory.js:243:5)
        at applyPluginsAsyncWaterfall (/media/sf_CakeTest/node_modules/webpack/lib/NormalModuleFactory.js:94:13)
        at /media/sf_CakeTest/node_modules/tapable/lib/Tapable.js:268:11
        at NormalModuleFactory.params.normalModuleFactory.plugin (/media/sf_CakeTest/node_modules/webpack/lib/CompatibilityPlugin.js:52:5)
        at NormalModuleFactory.applyPluginsAsyncWaterfall (/media/sf_CakeTest/node_modules/tapable/lib/Tapable.js:272:13)
        at resolver (/media/sf_CakeTest/node_modules/webpack/lib/NormalModuleFactory.js:69:10)
        at process.nextTick (/media/sf_CakeTest/node_modules/webpack/lib/NormalModuleFactory.js:196:7)
        at _combinedTickCallback (internal/process/next_tick.js:132:7)
                                                                                                                                                                                                                                                                                                                         Asset     Size  Chunks                    Chunk Names
    /js/app.js  1.39 MB       0  [emitted]  [big]  /js/app
    
    ERROR in ./node_modules/css-loader??ref--5-2!./node_modules/postcss-loader/lib??postcss!./node_modules/resolve-url-loader??ref--5-4!./node_modules/sass-loader/lib/loader.js??ref--5-5!./resources/assets/sass/app.scss
    Module build failed: Error: ENOENT: no such file or directory, scandir '/media/sf_CakeTest/node_modules/node-sass/vendor'
        at Object.fs.readdirSync (fs.js:904:18)
        at Object.getInstalledBinaries (/media/sf_CakeTest/node_modules/node-sass/lib/extensions.js:130:13)
        at foundBinariesList (/media/sf_CakeTest/node_modules/node-sass/lib/errors.js:20:15)
        at foundBinaries (/media/sf_CakeTest/node_modules/node-sass/lib/errors.js:15:5)
        at Object.module.exports.missingBinary (/media/sf_CakeTest/node_modules/node-sass/lib/errors.js:45:5)
        at module.exports (/media/sf_CakeTest/node_modules/node-sass/lib/binding.js:15:30)
        at Object. (/media/sf_CakeTest/node_modules/node-sass/lib/index.js:14:35)
        at Module._compile (module.js:653:30)
        at Object.Module._extensions..js (module.js:664:10)
        at Module.load (module.js:566:32)
        at tryModuleLoad (module.js:506:12)
        at Function.Module._load (module.js:498:3)
        at Module.require (module.js:597:17)
        at require (internal/module.js:11:18)
        at Object. (/media/sf_CakeTest/node_modules/sass-loader/lib/loader.js:3:14)
        at Module._compile (module.js:653:30)
        at Object.Module._extensions..js (module.js:664:10)
        at Module.load (module.js:566:32)
        at tryModuleLoad (module.js:506:12)
        at Function.Module._load (module.js:498:3)
        at Module.require (module.js:597:17)
        at require (internal/module.js:11:18)
        at loadLoader (/media/sf_CakeTest/node_modules/loader-runner/lib/loadLoader.js:13:17)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:169:2)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:165:10)
        at /media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:173:18
        at loadLoader (/media/sf_CakeTest/node_modules/loader-runner/lib/loadLoader.js:36:3)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:169:2)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:165:10)
        at /media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:173:18
     @ ./resources/assets/sass/app.scss 4:14-266
     @ multi ./resources/assets/js/app.js ./resources/assets/sass/app.scss
    
    ERROR in ./resources/assets/sass/app.scss
    Module build failed: ModuleBuildError: Module build failed: Error: ENOENT: no such file or directory, scandir '/media/sf_CakeTest/node_modules/node-sass/vendor'
        at Object.fs.readdirSync (fs.js:904:18)
        at Object.getInstalledBinaries (/media/sf_CakeTest/node_modules/node-sass/lib/extensions.js:130:13)
        at foundBinariesList (/media/sf_CakeTest/node_modules/node-sass/lib/errors.js:20:15)
        at foundBinaries (/media/sf_CakeTest/node_modules/node-sass/lib/errors.js:15:5)
        at Object.module.exports.missingBinary (/media/sf_CakeTest/node_modules/node-sass/lib/errors.js:45:5)
        at module.exports (/media/sf_CakeTest/node_modules/node-sass/lib/binding.js:15:30)
        at Object. (/media/sf_CakeTest/node_modules/node-sass/lib/index.js:14:35)
        at Module._compile (module.js:653:30)
        at Object.Module._extensions..js (module.js:664:10)
        at Module.load (module.js:566:32)
        at tryModuleLoad (module.js:506:12)
        at Function.Module._load (module.js:498:3)
        at Module.require (module.js:597:17)
        at require (internal/module.js:11:18)
        at Object. (/media/sf_CakeTest/node_modules/sass-loader/lib/loader.js:3:14)
        at Module._compile (module.js:653:30)
        at Object.Module._extensions..js (module.js:664:10)
        at Module.load (module.js:566:32)
        at tryModuleLoad (module.js:506:12)
        at Function.Module._load (module.js:498:3)
        at Module.require (module.js:597:17)
        at require (internal/module.js:11:18)
        at loadLoader (/media/sf_CakeTest/node_modules/loader-runner/lib/loadLoader.js:13:17)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:169:2)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:165:10)
        at /media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:173:18
        at loadLoader (/media/sf_CakeTest/node_modules/loader-runner/lib/loadLoader.js:36:3)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:169:2)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:165:10)
        at /media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:173:18
        at runLoaders (/media/sf_CakeTest/node_modules/webpack/lib/NormalModule.js:195:19)
        at /media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:364:11
        at /media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:170:18
        at loadLoader (/media/sf_CakeTest/node_modules/loader-runner/lib/loadLoader.js:27:11)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:169:2)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:165:10)
        at /media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:173:18
        at loadLoader (/media/sf_CakeTest/node_modules/loader-runner/lib/loadLoader.js:36:3)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:169:2)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:165:10)
        at /media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:173:18
        at loadLoader (/media/sf_CakeTest/node_modules/loader-runner/lib/loadLoader.js:36:3)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:169:2)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:165:10)
        at /media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:173:18
        at loadLoader (/media/sf_CakeTest/node_modules/loader-runner/lib/loadLoader.js:36:3)
        at iteratePitchingLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:169:2)
        at runLoaders (/media/sf_CakeTest/node_modules/loader-runner/lib/LoaderRunner.js:362:2)
        at NormalModule.doBuild (/media/sf_CakeTest/node_modules/webpack/lib/NormalModule.js:182:3)
        at NormalModule.build (/media/sf_CakeTest/node_modules/webpack/lib/NormalModule.js:275:15)
        at Compilation.buildModule (/media/sf_CakeTest/node_modules/webpack/lib/Compilation.js:157:10)
        at moduleFactory.create (/media/sf_CakeTest/node_modules/webpack/lib/Compilation.js:460:10)
        at factory (/media/sf_CakeTest/node_modules/webpack/lib/NormalModuleFactory.js:243:5)
        at applyPluginsAsyncWaterfall (/media/sf_CakeTest/node_modules/webpack/lib/NormalModuleFactory.js:94:13)
        at /media/sf_CakeTest/node_modules/tapable/lib/Tapable.js:268:11
        at NormalModuleFactory.params.normalModuleFactory.plugin (/media/sf_CakeTest/node_modules/webpack/lib/CompatibilityPlugin.js:52:5)
        at NormalModuleFactory.applyPluginsAsyncWaterfall (/media/sf_CakeTest/node_modules/tapable/lib/Tapable.js:272:13)
        at resolver (/media/sf_CakeTest/node_modules/webpack/lib/NormalModuleFactory.js:69:10)
        at process.nextTick (/media/sf_CakeTest/node_modules/webpack/lib/NormalModuleFactory.js:196:7)
        at _combinedTickCallback (internal/process/next_tick.js:132:7)
     @ ./resources/assets/sass/app.scss
     @ multi ./resources/assets/js/app.js ./resources/assets/sass/app.scss
    
    Posted by muchag | CakePHP 3.x,Library & PlugIn & AddIn,困ったTT |
    初回投稿:2018-12-07 (金) 13:31:02 | 最終更新:2018-12-11 (火) 23:13:04

    依存注入とコントローラ

    Posted by muchag | Laravel 5.x |
    初回投稿:2018-12-05 (水) 23:21:46 | 最終更新:2018-12-05 (水) 23:45:06


    公式:コントローラ 依存注入とコントローラ

    【環境】
    Laravel: 5.7.15
    コンストラクターインジェクション

    コンストラクタにおいて依存注入を果たす。

    コントローラ全体で利用する、できる。

    
    namespace App\Http\Controllers;
    
    use App\Repositories\UserRepository;
    
    class UserController extends Controller
    {
        /**
         * ユーザーリポジトリインスタンス
         */
        protected $users;
    
        /**
         * 新しいコントローラインスタンスの生成
         *
         * @param  UserRepository  $users
         * @return void
         */
        public function __construct(UserRepository $users)
        {
            $this->users = $users;
        }
    }
    
    メソッドインジェクション

    アクションにおいて依存注入を果たす。

    アクション(メソッド)ローカルで利用する、できる。

    
    namespace App\Http\Controllers;
    
    use Illuminate\Http\Request;
    
    class UserController extends Controller
    {
        /**
         * 新ユーザーの保存
         *
         * @param  Request  $request
         * @return Response
         */
        public function store(Request $request)
        {
            $name = $request->name;
    
            //
        }
    }
    
    暗黙の結合

    delete アクションにおいて、すごい暗黙ルールがあった。

    下記のようにルーティングすると

    
    Route::delete('/task/{task}', function (Task $task) {
      $task->delete();
    
      return redirect('/');
    });
    

    パラメータ task.id から、該当する Task モデル(エンティティ)を
    自動で取得してくるらしい。

    {task}と$taskの名前が一致している場合には「暗黙の結合」という機能によって、
    自動的に{task}のidを持つタスクが読み込まれ $taskに代入されます。
    もし一致するidが見つからない場合は、404ページが生成されます。

    beizのノート:Laravel 5.5 入門として「基本のタスクリスト」を作成する [その3](2018-11-01)
    タスクのデータベースからの削除

    すごいけど、ねぇ。。。

    delete でなくても、反応しそう。

    あ、これはコントローラの話じゃないか。

    ルーティングの勉強をするときに移動。

    Posted by muchag | Laravel 5.x |
    初回投稿:2018-12-05 (水) 23:21:46 | 最終更新:2018-12-05 (水) 23:45:06

    Cordova Index

    Posted by muchag | Cordova |
    初回投稿:2018-11-23 (金) 17:38:44 | 最終更新:2018-11-23 (金) 17:55:42

    丸っきりの書きかけ項目は Not found になる。

    基本
    1. インストール
    プラグイン
    1. カメラ操作
    Tips
    がい~ん!(はまったこと)
    1. 解決済み(たぶん)
    2. 未解決
    参考

    公式:CORDOVA 
    Documentation:英語 日本語
    日本語ドキュメントは、残念ながら翻訳が追いついていない。

    Posted by muchag | Cordova |
    初回投稿:2018-11-23 (金) 17:38:44 | 最終更新:2018-11-23 (金) 17:55:42

    Vue Carousel

    Posted by muchag | 未分類 |
    初回投稿:2018-11-22 (木) 20:53:28 | 最終更新:2018-11-22 (木) 20:53:28


    公式:Vue Carousel Guide API Examples

    【環境】
    Vue Carousel: 0.16.0-rc2
    Vue.js: 2.9.6
    monaca CLI: 3.0.3
    OS: Windows10 Pro 64bit
    インストール
    
    npm install -S vue-carousel
    
    書式
    グローバル

    グローバルの場合、ではなくて
    グローバルで下記のように記述。

    main.js
    
    import Vue from 'vue';
    import VueCarousel from 'vue-carousel';
    
    Vue.use(VueCarousel);
    
    ローカル

    ローカルの場合、ではなくて
    利用する .vue ファイルに記述。

    Hoge.vue
    
    import { Carousel, Slide } from 'vue-carousel';
    export default {
      ...
      components: {
        Carousel,
        Slide
      }
      ...
    };
    
    テンプレート
    
    
    設定

    carousel タグの属性として記述。
    公式:API

    
    

    ;(セミコロン)を付けないと、「文字列だぞ!」と怒られる。

    スタイル
    
    /* ナビゲーションも含めたカルーセル全体 */
    section.VueCarousel {
    }
    
    /* スライド全体 */
    div.VueCarousel-wrapper {
    }
    div.VueCarousel-inner {
    }
    
    /* スライド個体 */
    div.VueCarousel-slide {
    }
    

    現在のところ、div.VueCarousel-wrapper と div.VueCarousel-inner が
    なぜ親子になっているのか不明。

    Posted by muchag | 未分類 |
    初回投稿:2018-11-22 (木) 20:53:28 | 最終更新:2018-11-22 (木) 20:53:28
    次ページへ »