vite-plugin-uni-pages
vite-plugin-uni-pages copied to clipboard
pages.config.js更新pages.json之后行尾结束符是没有\n的?但是编辑器+prettier之后会有一个新的空行
描述问题
这种应该怎么处理呢?更新了pages.json 会频繁导致git检测到有变动
复现
系统信息
System:
OS: macOS 13.4.1
CPU: (8) arm64 Apple M1 Pro
Memory: 60.17 MB / 16.00 GB
Shell: 5.9 - /bin/zsh
Binaries:
Node: 16.20.2 - ~/.nvm/versions/node/v16.20.2/bin/node
Yarn: 1.22.19 - /opt/homebrew/bin/yarn
npm: 8.19.4 - ~/.nvm/versions/node/v16.20.2/bin/npm
pnpm: 8.12.1 - ~/.nvm/versions/node/v16.20.2/bin/pnpm
Watchman: 2023.09.04.00 - /opt/homebrew/bin/watchman
Browsers:
Chrome: 120.0.6099.216
Safari: 16.5.2
使用的包管理器
pnpm
核对
由于 uniapp 为了支持 uts 编译前强制依赖了 pages.json, 所以暂时没办法或者不建议将其加入 .gitignore 里。
至于 prettier 的话,通过 prettierrc 将其忽略呗
可以将 pages.json
、manifest.json
加入到 .gitignore 里,然后需要注意两点:
- 项目启动初始
pages.json
的缺失并不会对项目有明显的影响,但是page.json未生成之前可能会导致小程序ide首次运行项目时会因为pages.json
未及时生成导致页面渲染不及时,但是此问题可以通过手动点击小程序ide的重新编译即可; - 项目启动初始
manifest.json
的缺失会严重影响到项目的启动,uniapp内置的cli对这个文件的存在与否非常敏感,所以说这个文件虽然是可以加入到 .gitignore 里,但是你需要保证你项目启动的时候将manifest.json
创建一次,否则会影响项目的启动。
对于上面的问题2,我的解决办法是在项目的 package.json
的 scripts 内添加一个 reset:manifest
命令:
{
"scripts": {
"reset:manifest": "node -e \"var fs = require('fs'); if (!fs.existsSync('src/manifest.json')) fs.writeFileSync('src/manifest.json', '{}');\"",
"preinstall": "npm run reset:manifest",
"dev:h5": "npm run reset:manifest && uni",
"dev:mp-weixin": "npm run reset:manifest && uni -p mp-weixin",
},
}
reset:manifest
作用是判断src/manifest.json
文件不存在的情况下,生成一个空的json文件; 然后在项目安装依赖之前会执行一次这个操作,并且为了稳妥起见,每次dev之前都应该执行此操作,所以我在dev的一些命令前都加了此操作 当然为了prettier、eslint 等格式审查工具不报错,确实应该如上面大佬所述,将这两个文件加入到忽略清单里面去, 我这里提供的办法是为了每次git提交前不会受到这两个文件的频繁变动的解决方案。