好看的课外书,小说阅读网站,盗墓笔记小说下载
http://marshallsonline.cn/inews/
-
怎樣為Egg.js注冊為windows服務(wù)
http://marshallsonline.cn/inews/n3/egg-windows-service.html
2023-08-12T08:15:32+08:00
要將 Egg.js 部署為 Windows 服務(wù),可以按照以下步驟進(jìn)行操作:安裝 Node.js:首先,確保在 Windows 服務(wù)器上安裝了 Node.js 運(yùn)行環(huán)境??梢詮?Node.js 官方網(wǎng)站(https://nodejs.org/)下載并安裝最新版本的 Node.js。安裝 egg-windows-service:使用 npm 全局安裝 egg-windows-service 模塊。打開命令提示符并執(zhí)行以下命令:npm install -g egg-windows-service創(chuàng)建服務(wù)腳本:在 Egg.js 項目的根目錄下,創(chuàng)建一個名為 service.js 的腳本文件,用于定義 Windows 服務(wù)的配置和行為。以下是一個示例的 service.js 文件內(nèi)容:const Service = require('egg-windows-service');
const svc = new Service({
name: 'EggApp', // 服務(wù)名稱
description: 'Egg.js Application', // 服務(wù)描述
script: 'path/to/egg.js', // Egg.js 項目的入口文件路徑
});
svc.on('install', () => {
svc.start();
});
svc.install();安裝服務(wù):在命令提示符中,切換到 Egg.js 項目根目錄,并執(zhí)行以下命令來安裝服務(wù):egg-service install啟動服務(wù):執(zhí)行以下命令來啟動服務(wù):egg-service start停止服務(wù):執(zhí)行以下命令來停止服務(wù):egg-service stop卸載服務(wù):執(zhí)行以下命令來卸載服務(wù):egg-service uninstall通過以上步驟,就可以將 Egg.js 應(yīng)用部署為 Windows 服務(wù)了??梢允褂梅?wù)管理工具(如 Windows 的服務(wù)管理器)來啟動、停止和管理該服務(wù)。
-
解決局域網(wǎng)共享,另存為bat文件使用
http://marshallsonline.cn/inews/n3/local-share.html
2023-08-05T15:02:05+08:00
@echo off
color 2f
mode con cols=50 lines=30
title OKShare 【制作:wnsdt】
ver | findstr "6.1">nul && set bulid=nt6 && goto sc_top
ver | findstr "10.">nul && set bulid=nt10 && goto sc_top
ver | findstr "5.">nul && set bulid=nt5 && goto sc_top
ver | findstr "6.3">nul && set bulid=nt10 && goto sc_top
ver | findstr "6.2">nul && set bulid=nt10 && goto sc_top
echo.&echo.&echo.&echo.&echo.&echo.&echo.
echo 警 告
echo.
echo.&echo.&echo.
echo 軟件不支持你的系統(tǒng),按任意鍵退出!
pause>nul 2>nul
exit
:sc_top
cls
del /q %temp%\info.txt>nul 2>nul
:sc_menu
echo.&echo.&echo.
echo 局域網(wǎng)共享一鍵修復(fù) 19.3.13
echo.
echo --------------------------------------------
echo.&echo.&echo.
echo 1、本機(jī)網(wǎng)絡(luò)信息
echo.
echo 2、簡單共享(無密碼)
echo.
echo 3、密碼共享
echo.
echo 4、共享和權(quán)限管理
echo.
echo 5、權(quán)限設(shè)置指南(圖文)
echo.
echo 6、打印機(jī)共享指南(圖文)
echo.
echo 7、更新與反饋
echo.&echo.&echo.&echo.&echo.
set select=
set str1=1234567
set /p select= 輸入數(shù)字,按回車:
if not defined select goto sc_wrong
echo %select%|findstr "[%str1%]">nul||goto sc_wrong
if %select%==1 (goto sc_info)
if %select%==2 (goto sc_zd)
if %select%==3 (goto sc_sd)
if %select%==4 (goto sc_gl)
if %select%==5 (goto sc_help)
if %select%==6 (goto sc_print)
if %select%==7 (goto sc_update)
:sc_wrong
mshta vbscript:msgbox("只能輸入1-7的數(shù)字",64,"提示")(window.close)
goto sc_top
:sc_info
cls
echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.
echo 正在處理信息....
if %bulid%==nt5 (goto sc_nt5) else (goto sc_nt6)
:sc_nt5
(echo.
echo.)>>%temp%\info.txt
ping www.baidu.com -n 1 >nul || echo 互聯(lián)網(wǎng)狀態(tài): [ 離線 ]>>%temp%\info.txt && goto sc_ver_nt5
echo 互聯(lián)網(wǎng)狀態(tài): [ 在線 ]>>%temp%\info.txt
:sc_ver_nt5
(echo ----------------------------------------------------------
echo.)>>%temp%\info.txt
for /f "skip=1 tokens=2-4 delims=, " %%a in ('wmic os get caption') do (
if exist %windir%\SysWOW64 echo 系統(tǒng)版本: %%a %%b %%c 64位>>%temp%\info.txt & goto sc_ver_nt5_next
echo 系統(tǒng)版本: %%a %%b %%c 32位>>%temp%\info.txt
)
:sc_ver_nt5_next
(echo.
echo 計算機(jī)名: %COMPUTERNAME%
echo.)>>%temp%\info.txt
for /f "tokens=2 delims= " %%a in ('net config workstation^|findstr /c:"工作站域"') do echo 工作組: %%a>>%temp%\info.txt & goto sc_info_nt5
:sc_info_nt5
(echo.
echo 當(dāng)前用戶: %USERNAME%
echo.)>>%temp%\info.txt
for /f "delims=" %%a in ('date /t') do echo 本機(jī)日期: %%a>>%temp%\info.txt
echo.>>%temp%\info.txt
for /f "delims=" %%a in ('time /t') do echo 本機(jī)時間: %%a>>%temp%\info.txt
echo ---------------------------------------------------------->>%temp%\info.txt
goto sc_info_more
:sc_nt6
(echo.
echo.)>>%temp%\info.txt
ping www.baidu.com -n 1 >nul || echo 互聯(lián)網(wǎng)狀態(tài): [ 離線 ]>>%temp%\info.txt && goto sc_ver_nt6
echo 互聯(lián)網(wǎng)狀態(tài): [ 在線 ]>>%temp%\info.txt
:sc_ver_nt6
(echo ----------------------------------------------------------
echo.)>>%temp%\info.txt
for /f "skip=1 tokens=2-5 delims=?, " %%a in ('wmic os get caption') do (
if exist %windir%\SysWOW64 echo 系統(tǒng)版本: %%a %%b %%c %%d 64位>>%temp%\info.txt & goto sc_ver_nt6_next
echo 系統(tǒng)版本: %%a %%b %%c %%d 32位>>%temp%\info.txt
)
:sc_ver_nt6_next
(echo.
echo 計算機(jī)名: %COMPUTERNAME%
echo.)>>%temp%\info.txt
for /f "tokens=2 delims= " %%a in ('net config workstation^|findstr /c:"工作站域"') do echo 工作組: %%a>>%temp%\info.txt
(echo.
echo 當(dāng)前用戶: %USERNAME%
echo.)>>%temp%\info.txt
for /f "delims=" %%a in ('date /t') do echo 本機(jī)日期: %%a>>%temp%\info.txt
echo.>>%temp%\info.txt
for /f "delims=" %%a in ('time /t') do echo 本機(jī)時間: %%a>>%temp%\info.txt
echo ---------------------------------------------------------->>%temp%\info.txt
:sc_info_more
if %bulid%==nt5 ipconfig /all|findstr /v /c:"Windows IP Configuration"|findstr /v /c:"Host Name"|findstr /v /c:"Primary Dns Suffix"|findstr /v /c:"Node Type"|findstr /v /c:"IP Routing Enabled"|findstr /v /c:"WINS Proxy Enabled">>%temp%\info.txt && goto sc_info_next
ipconfig /all|findstr /v /c:"Windows IP 配置"|findstr /v /c:"主機(jī)名"|findstr /v /c:"主 DNS 后綴"|findstr /v /c:"節(jié)點類型"|findstr /v /c:"IP 路由已啟用"|findstr /v /c:"WINS 代理已啟用">>%temp%\info.txt
:sc_info_next
(echo.
echo ----------------------------------------------------------
echo.
echo.)>>%temp%\info.txt
start /w notepad %temp%\info.txt
del /q %temp%\info.txt>nul 2>nul
goto sc_top
:sc_zd
call :sc_qxfix
cls
echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.
echo 開始修復(fù)......
net user guest /active:yes>nul 2>nul
net user guest "">nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa" /v forceguest /t REG_DWORD /d 0x1 /f>nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa" /v LimitBlankPasswordUse /t REG_DWORD /d 0x0 /f>nul 2>nul
if %bulid%==nt10 reg add "HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" /v AllowInsecureGuestAuth /t REG_DWORD /d 0x1 /f>nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa" /v restrictanonymoussam /t REG_DWORD /d 0x0 /f>nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0" /v LmCompatibilityLevel /t REG_DWORD /d 0x1 /f>nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa" /v everyoneincludesanonymous /t REG_DWORD /d 0x1 /f>nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa" /v NoLmHash /t REG_DWORD /d 0x0 /f>nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters" /v restrictnullsessaccess /t REG_DWORD /d 0x0 /f>nul 2>nul
goto sc_main
:sc_sd
call :sc_qxfix
cls
echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.
echo 開始修復(fù)......
net user guest /active:no>nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa" /v forceguest /t REG_DWORD /d 0x0 /f>nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0" /v NtlmMinClientSec /t REG_DWORD /d 0x0 /f>nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0" /v NtlmMinServerSec /t REG_DWORD /d 0x0 /f>nul 2>nul
goto sc_main
:sc_main
sc config LanmanWorkstation start= auto>nul 2>nul
sc config LanmanServer start= auto>nul 2>nul
sc config Winmgmt start= auto>nul 2>nul
sc config RpcSs start= auto>nul 2>nul
sc config Netman start= auto>nul 2>nul
sc config RasMan start= demand>nul 2>nul
sc config SSDPSRV start= auto>nul 2>nul
sc config BFE start= auto>nul 2>nul
sc config ALG start= demand>nul 2>nul
sc config SharedAccess start= auto>nul 2>nul
net start SharedAccess /y>nul 2>nul
sc config Browser start= auto>nul 2>nul
net start Browser /y>nul 2>nul
sc config Dnscache start= auto>nul 2>nul
net start Dnscache /y>nul 2>nul
sc config Dhcp start= auto>nul 2>nul
net start Dhcp /y>nul 2>nul
sc config lmhosts start= auto>nul 2>nul
net start lmhosts /y>nul 2>nul
sc config Spooler start= auto>nul 2>nul
net start Spooler /y>nul 2>nul
sc config upnphost start= demand>nul 2>nul
net start upnphost /y>nul 2>nul
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Netlogon" /v Start|findstr "0x4">nul 2>nul && sc config Netlogon start= demand>nul 2>nul
reg add "HKLM\SYSTEM\CurrentControlSet\services\NetBT\Parameters" /v TransportBindName /t REG_SZ /d \Device\ /f>nul 2>nul
reg delete "HKLM\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters" /v SMB1 /F>nul 2>nul
reg delete "HKLM\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters" /v SMB2 /F>nul 2>nul
reg delete "HKLM\SYSTEM\CurrentControlSet\services\NetBT\Parameters" /v SMBDeviceEnabled /F>nul 2>nul
sc config netbt start= system>nul 2>nul
net start netbt>nul 2>nul
if %bulid%==nt5 (goto sc_sernt5) else (goto sc_sernt6)
:sc_sernt5
sc config PlugPlay start= auto>nul 2>nul
sc config TapiSrv start= auto>nul 2>nul
sc config Nla start= auto>nul 2>nul
net start Nla /y>nul 2>nul
netsh firewall set service type = fileandprint mode = enable scope = subnet>nul 2>nul
set "nbt=HKLM\SYSTEM\CurrentControlSet\services\NetBT\Parameters\Interfaces"
for /f "tokens=2 delims={" %%a in ('reg query "%nbt%"') do (reg query "%nbt%\TCPIP_{%%a" /s|findstr /i /c:"NetbiosOptions">nul && reg add "%nbt%\TCPIP_{%%a" /v NetbiosOptions /t REG_DWORD /d 0x0 /f>nul 2>nul)
goto sc_main2_etc
:sc_sernt6
sc config DcomLaunch start= auto>nul 2>nul
sc config RpcEptMapper start= auto>nul 2>nul
sc config SamSs start= auto>nul 2>nul
sc config nsi start= auto>nul 2>nul
sc config SstpSvc start= demand>nul 2>nul
sc config MpsSvc start= auto>nul 2>nul
net start MpsSvc /y>nul 2>nul
sc config NlaSvc start= auto>nul 2>nul
sc config netprofm start= auto>nul 2>nul
sc config fdPHost start= auto>nul 2>nul
net start fdPHost /y>nul 2>nul
sc config FDResPub start= auto>nul 2>nul
net start FDResPub /y>nul 2>nul
sc config HomeGroupListener start= auto>nul 2>nul
sc config WMPNetworkSvc start= auto>nul 2>nul
net start WMPNetworkSvc /y>nul 2>nul
sc config HomeGroupProvider start= auto>nul 2>nul
net start HomeGroupProvider /y>nul 2>nul
netsh advfirewall firewall set rule group=\"網(wǎng)絡(luò)發(fā)現(xiàn)\" new enable=Yes>nul 2>nul
netsh advfirewall firewall set rule group=\"文件和打印機(jī)共享\" new enable=Yes>nul 2>nul
if %bulid%==nt10 powershell -NonInteractive "Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol">nul 2>nul
for /f "delims=" %%a in ('reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NetBT\Parameters\Interfaces" /s /e /f "0x2"^|findstr "\Tcpip_"') do reg add "%%a" /v NetbiosOptions /t REG_DWORD /d 0x0 /f>nul 2>nul
:sc_main2_etc
(echo [Unicode]
echo Unicode=yes
echo [Version]
echo signature="$CHICAGO$"
echo Revision=1
echo [Privilege Rights]
echo sedenynetworklogonright =
echo senetworklogonright = Everyone,Administrators,Users,Power Users,Backup Operators,guest)>>%temp%\zcl.inf
secedit /configure /db %temp%\zcl.sdb /cfg %temp%\zcl.inf /log %temp%\zcl.log /quiet
del /q %temp%\zcl.*>nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa" /v restrictanonymous /t REG_DWORD /d 0x0 /f>nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters" /v AutoShareServer /t REG_DWORD /d 0x1 /f>nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters" /v AutoShareWks /t REG_DWORD /d 0x1 /f>nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Browser\Parameters" /v MaintainServerList /t REG_SZ /d Auto /f>nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Browser\Parameters" /v IsDomainMaster /t REG_SZ /d FALSE /f>nul 2>nul
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NetBT\Parameters" /v EnableLMHOSTS|findstr "0x0">nul 2>nul && reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NetBT\Parameters" /v EnableLMHOSTS /t REG_DWORD /d 0x1 /f>nul 2>nul
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RemoteComputer\NameSpace\{D6277990-4C6A-11CF-8D87-00AA0060F5BF}" /f>nul 2>nul
net use * /del /y>nul 2>nul
net config server /hidden:no>nul 2>nul
net share ipc$>nul 2>nul
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NetBT\Parameters" /v NodeType /f>nul 2>nul
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NetBT\Parameters" /v DhcpNodeType /f>nul 2>nul
goto sc_tip
:sc_gl
cls
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa" /v forceguest|findstr "0x1">nul 2>nul||goto classic
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa" /v forceguest /t REG_DWORD /d 0x0 /f>nul 2>nul
set jlb=y
:classic
echo.&echo.&echo.&echo.
echo 功能:管理本機(jī)共享,修改共享權(quán)限
echo.
echo 家庭版系統(tǒng)僅支持查看共享
echo ----------------------------------------------
echo.&echo.&echo.&echo.&echo.
echo 【使用說明】
echo.&echo.
echo 點左側(cè)“共享”可查看本機(jī)所有共享;
echo.
echo 右鍵點左側(cè)“共享”可“新建共享”;
echo.
echo 右鍵點右側(cè)共享可“停止共享”(能多選);
echo.
echo 右鍵點右側(cè)共享選“屬性”可修改權(quán)限;
echo.&echo.&echo.&echo.&echo.&echo.&echo.
fsmgmt.msc
if %jlb%==y reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa" /v forceguest /t REG_DWORD /d 0x1 /f>nul 2>nul
goto sc_top
:sc_tip
cls
echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.&echo.
echo 修復(fù)已完成!?。?mshta vbscript:msgbox("請手動重啟計算機(jī)",64,"提示")(window.close)
exit
:sc_help
cls
start "%ProgramFiles%\Internet Explorer\iexplore.exe" "https://zhuanlan.zhihu.com/p/24285252"
goto sc_top
:sc_print
cls
start "%ProgramFiles%\Internet Explorer\iexplore.exe" "https://zhuanlan.zhihu.com/p/24187152"
goto sc_top
:sc_update
cls
start "%ProgramFiles%\Internet Explorer\iexplore.exe" "https://zhuanlan.zhihu.com/p/24178142"
goto sc_top
goto :eof
:sc_qxfix
cls
echo.&echo.&echo.
echo 【使用說明】
echo --------------------------------------------
echo.
echo 復(fù)制共享文件夾的地址欄路徑到下方
echo.
echo 如果只共享打印機(jī),按回車鍵跳過
echo.&echo.&echo.&echo.&echo.&echo.&echo.
echo 粘貼路徑,按回車:
echo.&echo.
set /p lj=
for %%a in ("%lj%") do set name=%%~na
net share "%name%"="%lj%">nul 2>nul
if %bulid%==nt5 cacls "%lj%" /t /e /p everyone:f >nul 2>nul && goto :eof
icacls "%lj%" /grant everyone:(oi)(ci)F>nul 2>nul
goto :eof
-
山西貨通九州網(wǎng)絡(luò)科技有限公司
http://marshallsonline.cn/inews/n1/161.html
2023-07-12T16:58:17+08:00
貨通九州網(wǎng)終科技開發(fā)有限公司是一家專注于軟件開發(fā)、硬件設(shè)備和互聯(lián)網(wǎng)項目的公司。我們致力于為客戶提供創(chuàng)新的解決方案,以滿足不斷變化的市場需求。 在軟件開發(fā)方面,我們擁有高效的開發(fā)團(tuán)隊和豐富的經(jīng)驗,能夠開發(fā)各種類型的應(yīng)用軟件,包括網(wǎng)站、移動應(yīng)用、企業(yè)管理系統(tǒng)等。 在硬件設(shè)備方面,我們致力于開發(fā)創(chuàng)新的硬件產(chǎn)品,涵蓋了多個領(lǐng)域,如物聯(lián)網(wǎng)設(shè)備、嵌入式系統(tǒng)等。 此外,我們還涉足互聯(lián)網(wǎng)項目的開發(fā)。無論是電子商務(wù)平臺、在線教育系統(tǒng),還是社交媒體應(yīng)用,我們都能夠根據(jù)客戶的需求,提供定制化的解決方案,并確保項目的順利實施和有效運(yùn)營。
-
node 生成公鑰私鑰加密
http://marshallsonline.cn/inews/n3/126.html
2023-03-18T14:04:00+08:00
生成私鑰和公鑰const { generateKeyPairSync } = require('crypto');
const { publicKey, privateKey } = generateKeyPairSync('rsa', {
modulusLength: 4096,
publicKeyEncoding: {
type: 'spki',
format: 'pem'
},
privateKeyEncoding: {
type: 'pkcs8',
format: 'pem',
cipher: 'aes-256-cbc',
passphrase: 'top secret'
}
});公鑰加密,私鑰解密const crypto = require('crypto');
const fs = require('fs');
const publicKey = fs.readFileSync('./app/controller/publicKey.pem');
const privateKey = fs.readFileSync('./app/controller/privateKey.pem');
const secret = JSON.stringify({ a: 1 });
const encrypt = crypto.publicEncrypt(publicKey, Buffer.from(secret));
console.log(encrypt);
const decrypt = crypto.privateDecrypt({ key: privateKey, passphrase: '1233211234567' }, encrypt);
console.log(JSON.parse(decrypt.toString()));
-
nodejs 生成 word officegen模塊使用方法
http://marshallsonline.cn/inews/n3/officegen.html
2021-11-16T09:34:00+08:00
詳細(xì)文檔鏈接https://github.com/Ziv-Barber/officegen/blob/87dd5501968501555ea3bee60043affc9f67c1fa/manual/docx/README.md引用const officegen = require('officegen');監(jiān)聽docx.on('finalize', function(written) {
console.log(
'Finish to create a Microsoft Word document.'
);
});
// Officegen calling this function to report errors:
docx.on('error', function(err) {
console.log(err);
});
out.on('error', function(err) {
console.log(err);
});生成一行l(wèi)et pObj = docx.createP();行內(nèi)添加文字元素pObj.addText(' and back color.', { color: '00ffff', back: '000088',shdType: 'pct12',shdColor: 'ff0000' ,link: 'https://github.com'});設(shè)置文字對齊方式pObj.options.align = 'right';關(guān)聯(lián)文件并導(dǎo)出const out = fs.createWriteStream('./app/public/example.docx');
docx.generate(out);
-
VS Code配置Vue開發(fā)環(huán)境-Vetur+ESLint+Prettier
http://marshallsonline.cn/inews/n3/89.html
2021-08-22T15:31:00+08:00
核心就是 Vetur+ESLint,其他的我覺得就是錦上添花的作用快速配置本文的配置是記錄Vue CLI生成的項目,若不是,請自行處理依賴關(guān)系打開 vscode 的插件安裝,搜索上面的插件,一一安裝打開 vscode 的設(shè)置,鍵入以下代碼{
// 保存時自動格式化代碼
"editor.formatOnSave": true,
// eslint配置項,保存時自動修復(fù)錯誤
"editor.codeActionsOnSave": {
"source.fixAll": true
},
// 讓vetur使用vs自帶的js格式化工具,以便在函數(shù)前面加個空格
"vetur.format.defaultFormatter.js": "vscode-typescript",
"javascript.format.semicolons": "remove",
"javascript.format.insertSpaceBeforeFunctionParenthesis": true,
// 指定 *.vue 文件的格式化工具為vetur
"[vue]": {
"editor.defaultFormatter": "octref.vetur"
},
// 指定 *.js 文件的格式化工具為vscode自帶
"[javascript]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
},
// 默認(rèn)使用prettier格式化支持的文件
"editor.defaultFormatter": "esbenp.prettier-vscode"
}在項目的根目錄建立.eslintrc.js文件,鍵入以下代碼(Vue CLI 已帶)module.exports = {
root: true,
env: {
node: true,
},
extends: ['plugin:vue/essential', '@vue/standard'],
parserOptions: {
parser: 'babel-eslint',
},
rules: {
'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
},
}在項目的根目錄建立.prettierrc文件,鍵入以下代碼{
"semi": false,
"singleQuote": true
}在項目的根目錄建立.editorconfig文件,鍵入以下代碼(Vue CLI 已帶)[*.{js,jsx,ts,tsx,vue}]
indent_style = space
indent_size = 2
trim_trailing_whitespace = true
insert_final_newline = true至此,即可完成,詳細(xì)解釋請看后面Vetur這個插件是 vscode 能優(yōu)雅寫 Vue 的核心,絕對的神器,它的優(yōu)點:代碼高亮代碼片段Emmet 語法支持語法錯誤校驗檢查格式化代碼代碼提醒對三方 UI 框架的支持這里主要說說格式化代碼相關(guān),防止和 ESLint 打架。從官方文檔可以看出,Vetur集成了prettier,這就非常棒了。Vetur能夠讓 *.vue 文件中不同的塊使用不同的格式化方案,調(diào)用 html 格式化工具,低啊用 JavaScript 格式化工具,使用樣式格式化工具。默認(rèn)的格式化工具{
"vetur.format.defaultFormatter.html": "prettyhtml",
"vetur.format.defaultFormatter.css": "prettier",
"vetur.format.defaultFormatter.postcss": "prettier",
"vetur.format.defaultFormatter.scss": "prettier",
"vetur.format.defaultFormatter.less": "prettier",
"vetur.format.defaultFormatter.stylus": "stylus-supremacy",
"vetur.format.defaultFormatter.js": "prettier",
"vetur.format.defaultFormatter.ts": "prettier",
"vetur.format.defaultFormatter.sass": "sass-formatter"
}重要的是,這些工具已經(jīng)集成?。?!不需要額外下載了。然后來進(jìn)行一些設(shè)置,解決Vetur和ESlint的沖突。打開 vscode 的設(shè)置找個地方加入以下設(shè)置(注意最外層的{}){
// 將vetur的js格式化工具指定為vscode自帶的
"vetur.format.defaultFormatter.js": "vscode-typescript",
// 移除js語句的分號
"javascript.format.semicolons": "remove",
// 在函數(shù)名后面加上括號,類似這種形式 foo () {}
"javascript.format.insertSpaceBeforeFunctionParenthesis": true
}這里說說為什么要將 js 的格式化工具改為 vscode 自帶的。查閱 Prettier 官方文檔,發(fā)現(xiàn)不支持在函數(shù)名后面加上括號。這點和 ESLint 沖突了,所以要更改。ESLintvscode 的 ESLint 插件在某個版本已經(jīng)移除了"eslint.validate"這個配置選項,而網(wǎng)上很多教程都是使用的這個,導(dǎo)致一貼進(jìn) vscode 的配置文件,就開始保存和不兼容。在新版的 ESLint 中已經(jīng)支持了對*.vue文件的校驗,所以無需再進(jìn)行這項配置了,只需要添加一個保存時自動修復(fù) ESLint 錯誤的功能就行了。在 vscode 的配置文件中加入{
// eslint配置項,保存時自動修復(fù)錯誤
"editor.codeActionsOnSave": {
"source.fixAll": true
}
}在項目的根目錄(也就是和package.json同級的目錄)建立.eslintrc.js文件,鍵入以下代碼:一般來說使用 Vue CLI 生成的項目,啟用 ESLint 后會自動生成這個文件。若忘了啟用,自己手動 npm 安裝 eslint 相關(guān)插件即可module.exports = {
root: true,
env: {
node: true,
},
extends: ['plugin:vue/essential', '@vue/standard'],
parserOptions: {
parser: 'babel-eslint',
},
rules: {
'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
},
}PrettierVueter 雖好但只能作用于.vue文件,其他的文件像 .js *.html 等還需要使用 Prettier 來格式化這里做下簡單配置,來讓 Prettier 更好的和和 ESLint 配合。在項目的根目錄建立.prettierrc文件,鍵入以下代碼{
"semi": false,
"singleQuote": true
}這兩行代碼的作用是去除語句結(jié)尾的分號 ; ,以及使用單引號 ' 替代雙引號 "同時建議在 vscode 的配置文件中加入以下代碼:{
// 保存時自動格式化代碼
"editor.formatOnSave": true,
// 默認(rèn)使用prettier格式化支持的文件
"editor.defaultFormatter": "esbenp.prettier-vscode",
// 指定 *.vue 文件的格式化工具為vetur,防止和prettier沖突
"[vue]": {
"editor.defaultFormatter": "octref.vetur"
},
// 指定 *.js 文件的格式化工具為vscode自帶,以符合ESLint規(guī)范
"[javascript]": {
"editor.defaultFormatter": "vscode.typescript-language-features"
}
}為符合 ESLint 規(guī)范,建議將不要使用 Prettier 來對 js 進(jìn)行格式化,手動指定自帶格式化工具EditorConfig for VS CodeEditorConfig 主要是用于讓 vscode 支持.editorconfig文件。.editorconfig 文件中的設(shè)置用于在基本代碼庫中維持一致的編碼風(fēng)格和設(shè)置,例如縮進(jìn)樣式、選項卡寬度、行尾字符以及編碼等,并且它還是跨編輯器的你需要和 ESLint 的配置相符否則會出現(xiàn)你格式化代碼以后,卻不能通過你的代碼校驗工具的檢驗可以這樣說,EditorConfig 是讓代碼創(chuàng)建前保持規(guī)范, Prettier 是讓代碼保存后保持規(guī)范示例:[*.{js,jsx,ts,tsx,vue}]
indent_style = space
indent_size = 2
trim_trailing_whitespace = true
insert_final_newline = true
Bracket Pair Colorizer 2安裝即可,無需額外配置有了它,你再也不怕找不到匹配的各種括號了。他會給匹配的括號賦予同樣的顏色,并且給你圈出范圍來BracketPairColorizer 插件Live Server為靜態(tài)和動態(tài)頁面生成一個具有實時重新加載功能的本地開發(fā)服務(wù)器,可以右擊直接在瀏覽器查看Live Server 插件Better Comments更好看的注釋,更好的區(qū)分各個地方了Better Comments 插件Auto Close Tag自動閉合標(biāo)簽Code Spell Checker單詞校驗插件,可以避免很多錯誤,單詞寫錯造成的bug,一言難盡,強(qiáng)烈安利后記為什么不使用下面的插件CSS Peek : 可能某些會造成 CPU 負(fù)載巨高Auto Rename Tag :作者說可能存在性能問題
-
瀏覽器打印時背景色丟失問題解決方案
http://marshallsonline.cn/inews/n3/26.html
2021-08-18T09:53:43+08:00
最近的項目在調(diào)用瀏覽器的打印功能時發(fā)現(xiàn)表格設(shè)置的背景色丟失。添加以下 CSS 代碼解決://google chrome explore
-webkit-print-color-adjust: exact;
//firefox explore
-moz-print-color-adjust: exact;
color-adjust: exact;
-
正則去除vscode中的console.log
http://marshallsonline.cn/inews/n3/console.html
2021-08-06T17:16:00+08:00
打印語句:console.log() ,一句話描述它!“用的時候感覺賊爽,不用的時候腦袋痛吧?”以下提供三種解決方案:一. webpack打包時去除,適合Vue項目二. vscode正則匹配,手動去除拖放整個項目文件夾到vscode選中文件夾,然后編輯->在文件中替換console.log()加了分號console\.log\(.*?\);console.log()沒加分號console\.log\(.*?\)準(zhǔn)備出一篇簡單易懂的正則.三. console.log初始化指向空(不去除) - 以微信小程序做示例console.log = () => {}
console.log('console.log失效了');
-
開發(fā)常用 中文字體的英文名稱(宋體 微軟雅黑)
http://marshallsonline.cn/inews/n3/20.html
2021-07-11T16:18:06+08:00
宋體 SimSun黑體 SimHei微軟雅黑 Microsoft YaHei微軟正黑體 Microsoft JhengHei新宋體 NSimSun新細(xì)明體 PMingLiU細(xì)明體 MingLiU標(biāo)楷體 DFKai-SB仿宋 FangSong楷體 KaiTi仿宋_GB2312 FangSong_GB2312楷體_GB2312 KaiTi_GB2312宋體:SimSuncss中中文字體(font-family)的英文名稱Mac OS的一些:華文細(xì)黑:STHeiti Light [STXihei]華文黑體:STHeiti華文楷體:STKaiti華文宋體:STSong華文仿宋:STFangsong儷黑 Pro:LiHei Pro Medium儷宋 Pro:LiSong Pro Light標(biāo)楷體:BiauKai蘋果儷中黑:Apple LiGothic Medium蘋果儷細(xì)宋:Apple LiSung LightWindows的一些:新細(xì)明體:PMingLiU細(xì)明體:MingLiU標(biāo)楷體:DFKai-SB黑體:SimHei新宋體:NSimSun仿宋:FangSong楷體:KaiTi仿宋_GB2312:FangSong_GB2312楷體_GB2312:KaiTi_GB2312微軟正黑體:Microsoft JhengHei微軟雅黑體:Microsoft YaHei裝Office會生出來的一些:隸書:LiSu幼圓:YouYuan華文細(xì)黑:STXihei華文楷體:STKaiti華文宋體:STSong華文中宋:STZhongsong華文仿宋:STFangsong方正舒體:FZShuTi方正姚體:FZYaoti華文彩云:STCaiyun華文琥珀:STHupo華文隸書:STLiti華文行楷:STXingkai華文新魏:STXinweiWindows 中的中文字體。在默認(rèn)情況下,也就是未自行安裝新字體或者 Office 等文字處理軟件的情況下,Windows 默認(rèn)提供下列字體:Windows 95/98/98SE 宋體、黑體、楷體_GB2312、仿宋_GB2312Windows XP/2000/2003/ME/NT 宋體/新宋體、黑體、楷體_GB2312、仿宋_GB2312 (Windows XP SP3 宋體-PUA)Windows Vista/7/2008 宋體/新宋體、黑體、楷體、仿宋、微軟雅黑、SimSun-ExtB那么每種字體能顯示那些漢字呢?Vista 之前的 Windows 中宋體/新宋體、黑體支持 GBK 1.0 字符集,楷體_GB2312、仿宋_GB2312 支持 GB2312-80 字符集。(注:Windows 3.X 只能支持 GB2312-80 字符集)Vista 及之后的 Windows 中宋體/新宋體、黑體、楷體、仿宋、微軟雅黑支持 GB18030-2000 字符集,SimSun-ExtB 只支持 GB18030-2005 字符集擴(kuò)展 B 部分。下面對字符集進(jìn)行簡單的介紹:GB2312-80 < GBK 1.0 < GB18030-2000 < GB18030-2005GB2312-80 中的字符數(shù)量最少,GB18030-2005 字符數(shù)量最多。GB2312-80 是最早的版本,字符數(shù)比較少;GBK 1.0 中的漢字大致與 Unicode 1.1 中的漢字?jǐn)?shù)量相同;GB18030-2000 中的漢字大致與 Unicode 3.0 中的漢字?jǐn)?shù)量相同,主要增加了擴(kuò)展 A 部分;GB18030-2005 中的漢字大致與 Unicode 4.1 中的漢字?jǐn)?shù)量相同,主要增加了擴(kuò)展 B 部分;由于 Unicode 5.2 的發(fā)布,估計 GB18030 會在近期發(fā)布新版本,增加擴(kuò)展 C 部分。需要說明的是在 GB18030 中擴(kuò)展 B 部分并不是強(qiáng)制標(biāo)準(zhǔn)。如果想查看 GB18030 的標(biāo)準(zhǔn)文本,請訪問 http://www.gb168.cn 中的強(qiáng)標(biāo)閱讀。如果想了解 Unicode 的內(nèi)容,請訪問 http://www.unicode.org?,F(xiàn)在糾正網(wǎng)上普遍的一個錯誤:GB18030-2000 和 GB18030-2005 都不支持單字節(jié)的歐元符號與簡體中文有關(guān)的代嗎頁如下:936 gb2312 簡體中文(GB2312)————其實是GBK10008 x-mac-chinesesimp 簡體中文(Mac)20936 x-cp20936 簡體中文(GB2312-80)50227 x-cp50227 簡體中文(ISO-2022)51936 EUC-CN 簡體中文(EUC)52936 hz-gb-2312 簡體中文(HZ)54936 GB18030 簡體中文(GB18030)補(bǔ)充:使用楷體_GB2312、仿宋_GB2312后,在 Windows 7/Vista/2008 中可能不再顯示為對應(yīng)的字體。這是因為 Windows 7/Vista/2008 中有楷體、仿宋,默認(rèn)情況下沒有楷體_GB2312、仿宋_GB2312,字體名稱相差“_GB2312”。
-
mongoose 多表查詢 使用條件查詢
http://marshallsonline.cn/inews/n3/16.html
2021-06-21T12:16:00+08:00
aggregate.push({
$lookup: {
from: 'examnum',
let: { userId: '$_id' },
pipeline: [
{
$match: {
$expr: {
$eq: [ '$exambatchId', mongoose.Types.ObjectId(data.exambatchId) ],
},
},
},
{
$match: {
$expr: {
$eq: [ '$userId', '$$userId' ],
},
},
},
{
$sort: { _id: 1 },
}, {
$limit: 1,
},
],
as: 'examnum',
},
});