node webpack 多config 编译执行
https://cloud.tencent.com/developer/section/1477277
parallel-webpack 多config 并行执行编译，这样提高速度


192.168.4.194
项目文件：/filesdisk2/eap5/web/workspace/project/deploy
        /filesdisk2/eap5/studio/workspace/project/deploy/
        
192.168.4.193
项目文件：
/opt/eap5/desktop/preview/


deploy最终的项目部署目录
http://192.168.4.194:3000/project/01521/mokuai/shitu/abc/dtv/1.0.0/index.html

让npm run dev在Linux后台 持久运行
nohup npm run dev >/dev/null 2>&1 &
exit
杀端口进程
netstat -apn|grep 3000
kill -9 18164


下面几个版本组合（有些版本没有列出来）。

npm install -g node-gyp
https://github.com/webpack-contrib/sass-loader/blob/v6.0.7/package.json

node-sass 对环境的要求 Node 12 的话要 node-sass 4.12+
然页sass-loader 版本8的， 配对 node-sass版本4 
npm i sass-loader@8.0.2 node-sass@4.13.0 -D

npm rebuild node-sass

npm i less@4.1.1 less-loader@3.0.0 -D
npm cache clean -f

rimraf node_modules
npm shrinkwrap  // npm-shrinkwrap.json 锁定包版本环境




1：npm install webpack -g            

2: npm install webpack-cli -g

3: npm init -y

4: npm install webpack --save-dev

5: npm install html-webpack-plugin    （html编译插件）

6：npm install clean-webpack-plugin

6.1: npm install webpack-dev-server   (服务插件)

6.2: npm install style-loader css-loader  （css打包插件）

6.3: npm install file-loader url-loader    (文件图片打包插件)

6.4: npm install less-loader    (less打包插件)

6.5: npm install sass scss --save-dev       （sass scss打包插件）

6.6: npm install sass-loader nade-sass      (sass打包插件)

7新建一个src文件夹  和  less文件夹       和webpack.config.js 




//以element 方式打包各各组件，做为按需导出使用 ElementUI/babel-plugin-component
.babelrc
"plugins": ["transform-vue-jsx", "transform-runtime", [
    "component",
    {
        "libraryName": "hi-ui",
        "style":false
    }
]],



vue2 使用 vite 所需求的步骤：

1、相关包安装
npm i '@vitejs/plugin-vue' '@vue/compiler-sfc' vite vite-plugin-vue2 -D

2、添加vite.confing.js
import { createVuePlugin } from "vite-plugin-vue2";
在配置项中，转vue
plugins: [createVuePlugin()],

3、修改vite/dist/client/client.js

    case 'error': 
    //判断当前出错的页面
    let locPath = location.pathname.split('/');
    locPath.pop();            
    if(err.id.indexOf(locPath.join('/'))==-1)break;
    

    case 'update': 
        return;//让用户手动去刷新 08335
    case 'full-reload':
        return;//让用户手动去刷新 08335



报类似这样的错误： Current process list running is not in sync with saved list. App BookStack differs. Type ‘pm2 save’ to synchronize.

按先后顺序，执行如下操作：

pm2 update
pm2 save
pm2 list
//当dock重新部署时这个重启服务
pm2 resurrect



npm i vite@2.3.7 --save-dev //fonticon这个版本才可以有图标显示
webpack5
https://blog.csdn.net/j178202798/category_11141799.html


 npm run build:debug ./project/zhuomianduanyanshi/biaozhundanju/view/biaodan/dtv/1.0.0

 npm run build:modules ./project/WangGeShu/view/ShuWangGe/dtv/1.0.0/desktop



webpack 2 vite
 https://github.com/tnfe/wp2vite/blob/master/README.zh-CN.md 

自动化构建工具（三）Parcel
 https://blog.csdn.net/weixin_42580704/article/details/108378689
 https://www.parceljs.cn/getting_started.html






/eap5.0/hiruntime/project/desktop/oper.sh admin eap5csxm sync cli

/eap5.0/hiruntime/project/desktop/project-template/build/bin/oper.sh

cp -rf /eap5.0/hiruntime/project/desktop/project-template/build/bin/oper.sh /eap5.0/hiruntime/project/desktop/

chmod -R 777 /eap5.0/hiruntime/project/desktop



/eap5.0/hiruntime/project/hicli.sh 域名   项目类型   用户名   项目    操作  

如：
项目类型    用户名      项目名          创建操作        桌面端口        app端口     小程序端口       域名
  eap5     0000227     eapProject     create          2022           2023       2024         open2.hieap.cn

如：
项目类型   用户名  项目名       删除操作 
  eap5   0000227  eapProject  delete 

如：
项目类型   用户名      项目名    同步操作    平台    同步方式       版本          
eap5     0000227   eapProject   sync     desktop    hiui       1.1.150    
eap5     0000227   eapProject   sync     rn 
eap5     0000227   eapProject   sync     xcx  

如：
项目类型   用户名    项目名      重启操作   平台    端口
eap5    0000227   eapProject   restart    desktop
eap5  0000227   eapProject  restart    rn     2025
eap5  0000227   eapProject  restart    xcx    2026

 

项目类型，工号，项目，命令 ，平台 ，命令参数（逗号分开）
eap5   admin  eaptpl  build  desktop  上传路径  模块路径列表（逗号分开） 
eap5   admin  eaptpl  build  android 上传路径  部署名 
eap5   admin  eaptpl  build  xcx 上传路径  部署名
eap5   admin  eaptpl  build  ios 上传路径 部署名


================linux 命令=============================

nginx.conf 中通配域名识别
map $host $proxy_pass{
    "mflm.0000221.pre2.hieap.cn" "43447";
}
server {
    listen              8001;
    server_name  ~^(\w)*?\.(\w)*?\.pre2\.hieap\.cn$;
    location / {
        proxy_pass    http://127.0.0.1:$proxy_pass;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header X-real-ip $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Origin "";
        index  index.html index.htm;
        }
}



/usr/local/nginx/sbin

pm2 startup


# 用来启动保存下来的服务列表
pm2 resurrect

端口查看进程 lsof -i :8081


杀端口进程
netstat -apn|grep 3000
kill -9 18164


lsof -i :38889


free -m   查看内存


查看用户进程的内存使用情况,这是一条 Linux 命令，可以查看系统中运行的进程，并按照 CPU 占用率进行排序，最后输出占用 CPU 资源最多的前 10 个进程。
ps auxw|head -1;ps auxw|sort -rn -k3|head -10


杀webpack 进程
ps -ef|grep webpack|grep -v grep|cut -c 9-15|xargs kill -9




使用指令sed -i 's/\r$//' xxxxxxx.sh，上面的指令会把 xxxxxxx.sh 中的\r 替换成空白！


内网：
PC      http://项目名.工号.pre2.hieap.cn
手机    http://项目名rn.工号.pre2.hieap.cn
小程序    http://项目名xcx.工号.pre2.hieap.cn
文档      http://项目名doc.工号.pre2.hieap.cn

外网：
PC      http://项目名.工号.pre.hieap.cn
手机    http://项目名rn.工号.pre.hieap.cn
小程序    http://项目名xcx.工号.pre.hieap.cn
文档      http://项目名doc.工号.pre.hieap.cn


【======编译问题 ======】
可能 parallel-webpack  cpu太多 
可能  happypack  cpu太多
目前把  parallel-webpack 降到 1 cpu  结果可以跑的动





#第一个管道将每行的逗号去掉；第二个管道去掉{和}；第三个管道去掉所有双引号；第四个管道替换第一个:为=号
data=$(cat profile.json | sed -r 's/",/"/' | egrep -v '^[{}]' | sed 's/"//g' | sed 's/:/=/1')
#如果json的值直接没有换行符则使用下面的方法获取
#data=`cat data.json |sed 's/,"/\n/g' |grep -v IAM_Server  |sed 's/":"/=/g;s/"$//g;s/^{"//g;s/"}//g'`
declare $data		#声明变量
echo $Mysql_Port	#查看变量值







压缩node_modules 
tar -zcf node_modules.tar.gz node_modules



解压 
tar -zxf node_modules.tar.gz