uni-helper / vite-plugin-uni-pages

为 Vite 下的 uni-app 提供基于文件系统的路由
https://uni-helper.js.org/vite-plugin-uni-pages
MIT License
104 stars 15 forks source link

pages.config.js更新pages.json之后行尾结束符是没有\n的?但是编辑器+prettier之后会有一个新的空行 #133

Closed mistery-li closed 2 months ago

mistery-li commented 7 months ago

描述问题

这种应该怎么处理呢?更新了pages.json 会频繁导致git检测到有变动 image

复现

image

系统信息

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

核对

KeJunMao commented 7 months ago

由于 uniapp 为了支持 uts 编译前强制依赖了 pages.json, 所以暂时没办法或者不建议将其加入 .gitignore 里。

至于 prettier 的话,通过 prettierrc 将其忽略呗

Vanisper commented 6 months ago

可以将 pages.jsonmanifest.json 加入到 .gitignore 里,然后需要注意两点:

  1. 项目启动初始 pages.json 的缺失并不会对项目有明显的影响,但是page.json未生成之前可能会导致小程序ide首次运行项目时会因为 pages.json 未及时生成导致页面渲染不及时,但是此问题可以通过手动点击小程序ide的重新编译即可;
  2. 项目启动初始 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提交前不会受到这两个文件的频繁变动的解决方案。