使用docker来存放环境的目的,当然是为了快速地建立起来环境。
增加了开发electron程序所需的工具。
#! /usr/bin/bash
# 文件名:StartDockerContainer_bash
sudo docker run --rm -it \
-u dev:dev \
-v $(realpath ../03.JavaScript):/work \
reechand/nodejs:02 \
bash --rcfile /ElectronDevBash
进入以后输入h看帮助
#! ./StartDockerContainer_bash
# 文件名:ElectronDevBash
# 备份文件:le命令需要用备份之前的文件
cp /home/dev/.npmrc /home/dev/.npmrc.bak
function ll(){
ls -l --color $@
}
function h(){
echo 'h 帮助(help)'
echo '==========根工程处理命令(开始)=========='
echo 'c 1.重新创建(create)根工程'
echo 'x 2.局部安装(npx)'
echo 'm 3.局部安装(npm)'
echo 'n 4.局部安装(node)'
echo 'e 5.局部安装(electron)'
echo 'r 6.局部安装打包工具(@electron/packager)'
echo 'v 7.查看(view)安装的二进制工具(node_modules/.bin)'
echo 'p 8.实施打包(package)'
echo '----------根工程处理命令(结束)----------'
echo '==========参考用的子工程创建命令(开始)=========='
echo 'evp 1.创参考用的子工程electron-vite-project'
echo 'ea 2.参考用的子工程electron-app'
echo '----------参考用的子工程创建命令(结束)----------'
echo 'q 退出(quit)'
}
function p(){
rm -rfd ./out-dist-package
mkdir -pv ./out-dist-package/linux_x64
echo '正在打包linux版'
time npx npx electron-packager . hf --platform=linux --arch=x64 --out ./out-dist-package
echo '正在打包windows版'
time npx npx electron-packager . hf --platform=win32 --arch=x64 --out ./out-dist-package
}
function r(){
echo '即将安装打包工具@electron/packager'
time npx npx npm install @electron/packager --save-dev
}
function e(){
cp -f /home/dev/.npmrc.bak /home/dev/.npmrc
echo 'ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/' >> /home/dev/.npmrc
echo '即将安装解释执行器electron'
time npx npx npm install electron --save-dev
}
function m(){
echo '即将安装webstorm和vscode等需要的包管理器npm'
time npx npm install -D [email protected]
}
function x(){
echo '即将安装运行局部包需要的工具npx'
time npm install -D [email protected]
}
function v(){
echo '查看可用的所有二进制程序'
ll node_modules/.bin
}
function n(){
echo '即将局部安装webstorm和vscode等需要的解释器node'
npx npx npm install -D [email protected]
}
function q(){
exit
}
function c(){
rm -rfd /work/*
npm init -y
}
h
# 如果工作目录存在就自动切换过去
if [ -d /work ]; then
cd /work
fi
function evp(){
clear
echo '已经进入evp工作环境'
/usr/bin/bash --rcfile /electron-vite-project
clear
h
}
function ea(){
clear
echo '已经进入ea工作环境'
/usr/bin/bash --rcfile /electron-app
clear
h
}
#! ./StartDockerContainer_bash
# 文件名:electron-vite-project
function h(){
echo 'h 参考工程evp(electron-vite-project)的帮助(help)'
echo '=========================================================================================='
echo 'c 1.创建(create)子工程electron-vite-project'
echo ' 1.1.命令名evp是子工程名的首字母缩写'
echo ' 1.2.交互过程中一般按回车,工程模板有三个可选:Vue、React和Vanilla'
echo ' 1.3.交互过程不能选择TypeScript支持,默认就是启用的(演示代码都是TypeScript书写)'
echo 'i 2.局部安装(install)子工程electron-vite-project需要的所有软件包'
echo 'l 3.查错(eslint):使用react框架的工程才可用'
echo 'p 4.编译并打包(package),能够起到排查错误的作用'
echo 'd 5.支持热更新的开发(dev)用的web服务器'
echo 's 6.发布编译后资源的静态(static)web服务器'
echo 'q 7.离开(quit)'
}
function c(){
# 1.再次删除目录
rm -rfd ./electron-vite-project
# 4.创建子工程相关文件(主要是子工程的package.json)
npx npx npm init electron-vite -D
}
function i(){
cp -f /home/dev/.npmrc.bak /home/dev/.npmrc
echo 'ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/' >> /home/dev/.npmrc
bash -c "cd electron-vite-project && npx npx npm install"
}
function l(){
bash -c "cd electron-vite-project && npx npx npm run lint"
}
function p(){
bash -c "cd electron-vite-project && npx npx npm run build"
}
function d(){
bash -c "cd electron-vite-project && npx npx npm run dev"
}
function s(){
bash -c "cd electron-vite-project && npx npx npm run preview"
}
function q(){
exit
}
h
#! ./StartDockerContainer_bash
# 文件名: electron-app
function h(){
echo 'h 参考子工程ea(electron-app)的帮助(help)'
echo '=========================================================================================='
echo 'c 1.创建(create)子工程electron-app'
echo ' 1.1.命令名ea是子工程名的首字母缩写'
echo ' 1.2.交互过程中一般按回车,工程模板有五个可选:Vanilla、Vue、React、svelte、solid'
echo ' 1.3.交互过程可以选择是否需要TypeScript支持'
echo 'i 2.局部安装(install)子工程electron-app需要的所有软件包'
echo 'l 3.查错(eslint)'
echo 'p 4.编译并打包(package),能够起到排查错误的作用'
echo 'd 5.支持热更新的开发(dev)用的web服务器'
echo 's 6.发布编译后资源的静态(static)web服务器'
echo 'q 7.退出(quit)'
}
function c(){
# 1.彻底删除目标目录
rm -rfd ./electron-app
# 2.使用向导创建目标目录
npx npx npm create @quick-start/electron@latest
}
function i(){
cp -f /home/dev/.npmrc.bak /home/dev/.npmrc
echo 'ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/' >> /home/dev/.npmrc
bash -c "cd electron-app && npx npx npm install"
}
function l(){
bash -c "cd electron-app && npx npx npm run lint"
}
function p(){
bash -c "cd electron-app && npx npx npm run build:win && npx npx npm run build:linux"
}
function d(){
bash -c "cd electron-app && npx npx npm run dev"
}
function s(){
bash -c "cd electron-app && npx npx npm run start"
}
function q(){
exit
}
h
#! ./BuildDockerImage
FROM reechand/nodejs:01
# 下面这个工具脚本是维护根工程使用的
COPY ./ElectronDevBash /ElectronDevBash
# 下面这两个工具脚本是维护参考用的子工程用的
COPY ./electron-vite-project /electron-vite-project
COPY ./electron-app /electron-app
#! /usr/bin/bash
sudo docker build --tag reechand/nodejs:02 .
只是增加了npm的国内源
#! /usr/bin/bash
sudo docker run --rm -it \
-u dev:dev \
-e DISPLAY \
reechand/nodejs:01 \
bash -c 'npm config get registry&& cnpm -v'
#! ./03_run_update_docker_image
# 01.原型
FROM reechand/ubuntu:06
# 02.安装npm(apt自带的版本,会自动安装node)
RUN apt install -y --no-install-recommends npm
# 03.启用npm的国内源
RUN npm config set registry https://registry.npmmirror.com
# 04.安装cnpm
RUN npm install -g cnpm
# 05.升级node到最新的LTS版
RUN npm install -g [email protected]
# 06.设置用户dev的npm国内源
RUN apt install -y --no-install-recommends sudo
RUN sudo -u dev npm config set registry https://registry.npmmirror.com/
#! /usr/bin/bash
# 1.获得当前脚本所在目录
DirOfScript=$(dirname $0)
# 2.使用配置文件更新Docker Image
clear
sudo docker build \
--file ${DirOfScript}/03_config_Dockerfile \
--tag reechand/nodejs:01 \
${DirOfScript}
Content type
Image
Digest
sha256:f6dd179d8…
Size
1.2 GB
Last updated
over 2 years ago
docker pull reechand/nodejs:02