diff --git a/_sidebar.md b/_sidebar.md index 1e4ff220b539ba5057643dae2acff7c80dbb13ff..a3e55d9d0182407ed140917b2f4117627ceeec88 100644 --- a/_sidebar.md +++ b/_sidebar.md @@ -30,6 +30,7 @@ - [MySQL](doc/mysql.md) - [Neo4j](doc/neo4j.md) - [Redis](doc/redis.md) + - [ElasticSearch](doc/elasticsearch.md) - 其他 - [其他](doc/index.md) diff --git a/blog/php-mysql/index.md b/blog/php-mysql/index.md index a53df2c60237d5e4f8800e64243c9a108f14b8b4..b9ac832554651c67736beff0e9086c946ca4fe94 100644 --- a/blog/php-mysql/index.md +++ b/blog/php-mysql/index.md @@ -28,11 +28,11 @@ 13. [列属性(字段属性)](blog/php-mysql/sql-field-prototype.md) -[表关系](blog/php-mysql/sql-relation.md) +14. [表关系](blog/php-mysql/sql-relation.md) -[高级数据操作-新增数据](blog/php-mysql/sql-senior-add.md) +15. [高级数据操作-新增数据](blog/php-mysql/sql-senior-add.md) -[高级数据操作-更新数据](blog/php-mysql/sql-senior-update.md) +16. [高级数据操作-更新数据](blog/php-mysql/sql-senior-update.md) [高级数据操作-删除数据](blog/php-mysql/sql-senior-delete.md) diff --git a/blog/webpack/webpack-loader.md b/blog/webpack/webpack-loader.md new file mode 100644 index 0000000000000000000000000000000000000000..43f1cb5a7d71771143c2aabdaab21a35a42e013a --- /dev/null +++ b/blog/webpack/webpack-loader.md @@ -0,0 +1,179 @@ +# Webpack loader + +loader 将不同类型的文件转换为 webpack 可识别的模块 + + +使用loader的方式 + +1. 配置方式: pre、normal、post (推荐使用) +2. 内联方式: inline + +loader 执行优先级: + +``` +pre: 前置 loader +normal: 普通 loader +inline: 内联 loader +post: 后置 loader +``` + +相同优先级:从右到左,从下到上 + +```js +// 此时loader执行顺序:loader3 - loader2 - loader1 +module: { + rules: [ + { + test: /\.js$/, + loader: "loader1", + }, + { + test: /\.js$/, + loader: "loader2", + }, + { + test: /\.js$/, + loader: "loader3", + }, + ], +}, +``` + +指定优先级 + +``` +// 此时loader执行顺序:loader1 - loader2 - loader3 +module: { + rules: [ + { + enforce: "pre", + test: /\.js$/, + loader: "loader1", + }, + { + // 没有enforce就是normal + test: /\.js$/, + loader: "loader2", + }, + { + enforce: "post", + test: /\.js$/, + loader: "loader3", + }, + ], +}, +``` + +内联方式 + +```js +import style from 'style-loader!css-loader?modules!./style.css' +``` + +内联方式跳过配置方式的 loader + +```js +// ! 跳过 normal loader。 +import style from '!style-loader!css-loader?modules!./style.css' + +// -! 跳过 pre 和 normal loader。 +import style from '-!style-loader!css-loader?modules!./style.css' + +// !! 跳过 pre、 normal 和 post loader。 +import style from '!!style-loader!css-loader?modules!./style.css' +``` + +开发一个 loader + +项目结构 +```bash +$ tree +. +├── loaders +│ └── test-laoder.js +├── package.json +├── pnpm-lock.yaml +├── src +│ └── index.js +└── webpack.config.js +``` + +项目文件 + + +```js +// loaders/test-laoder.js +/** + * + * @param {*} content 源文件的内容 + * @param {*} map SourceMap 数据 + * @param {*} meta 数据,可以是任何内容 + * @returns + */ +module.exports = function loader(content, map, meta) { + console.log("hello loader"); + return content; +}; + +``` + +package.json + +```json +{ + "dependencies": { + "webpack": "^5.72.1", + "webpack-cli": "^4.9.2" + } +} + +``` + +```js +// webpack.config.js +const path = require("path"); + +module.exports = { + entry: "./src/index.js", + + output: { + path: path.resolve(__dirname, "dist"), + filename: "bundle.js", + clean: true, + }, + + module: { + rules: [ + { + test: /\.js$/, + loader: "./loaders/test-laoder.js", + }, + ], + }, + + plugins: [], + + mode: "development", +}; + +``` + +```js +// src/index.js +console.log("Hello World"); + +``` + +编译打包 + +``` +# 安装依赖 +$ pnpm add webpack webpack-cli + +# 运行打包 +$ npx webpack --config webpack.config.js +hello loader +``` + + +https://www.bilibili.com/video/BV14T4y1z7sw?p=67&spm_id_from=pageDriver diff --git a/doc/elasticsearch.md b/doc/elasticsearch.md new file mode 100644 index 0000000000000000000000000000000000000000..57696dacd2c842269a2469e9eb819e315363da42 --- /dev/null +++ b/doc/elasticsearch.md @@ -0,0 +1,96 @@ + +elasticsearch下载地址 + +- 官网下载:[https://www.elastic.co/cn/downloads/past-releases#elasticsearch](https://www.elastic.co/cn/downloads/past-releases#elasticsearch) + +- elasticsearch中文社区:[https://elasticsearch.cn/download/](https://elasticsearch.cn/download/) + +- 华为云镜像:[https://repo.huaweicloud.com/elasticsearch/](https://repo.huaweicloud.com/elasticsearch/) + +下载解压安装 + +```bash +# elasticsearch +wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.4-linux-x86_64.tar.gz + +# kibana +wget https://artifacts.elastic.co/downloads/kibana/kibana-7.17.4-linux-x86_64.tar.gz + +# 解压 +tar -xvf elasticsearch-7.17.4-linux-x86_64.tar.gz + +# 运行 +cd elasticsearch-7.17.4/bin +./elasticsearch +``` + +安装JDK +```bash +# 搜索jdk +yum search jdk + +# 安装 +yum install -y java-1.8.0-openjdk.x86_64 + +# 验证 +java -version +openjdk version "1.8.0_332" +OpenJDK Runtime Environment (build 1.8.0_332-b09) +OpenJDK 64-Bit Server VM (build 25.332-b09, mixed mode) +``` + +不同编程语言的客户端 +https://www.elastic.co/guide/en/elasticsearch/client/index.html + +```bash +# php > 7.1 +composer require "elasticsearch/elasticsearch" "~7.0" +``` + +文档: +https://www.elastic.co/guide/en/elasticsearch/client/php-api/7.17/index.html + + +配置Nginx代理转发 + +```bash +# kibana.conf +server { + listen 8002; + server_name localhost; + + location / { + # 设置 auth + auth_basic "login auth"; + auth_basic_user_file /usr/local/nginx/.htpasswd; + + proxy_pass http://127.0.0.1:5601; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } +} + +``` + +```bash +# elasticsearch.conf +server { + listen 8001; + server_name localhost; + + location / { + # 设置 auth + auth_basic "login auth"; + auth_basic_user_file /usr/local/nginx/.htpasswd; + + proxy_pass http://127.0.0.1:9200; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } +} +``` + +Elasticsearch7.6中文文档 + +- https://www.kancloud.cn/yiyanan/elasticsearch_7_6/1668540 +- https://learnku.com/docs/elasticsearch73/7.3 \ No newline at end of file diff --git a/doc/webpack.md b/doc/webpack.md index 0f022d3ec2a4f75ea5525525e272e7d146bedb28..8d5a53e3544dbaf529d0d008986e63ca26d75bc8 100644 --- a/doc/webpack.md +++ b/doc/webpack.md @@ -6,6 +6,8 @@ - [Webpack5实战教程](blog/webpack/webpack5.md) +- [webpack-loader](blog/webpack/webpack-loader.md) + 中文文档: - [https://webpack.docschina.org](https://webpack.docschina.org)