vite-plugin-uni-pages icon indicating copy to clipboard operation
vite-plugin-uni-pages copied to clipboard

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

Open mistery-li opened this issue 1 year ago • 2 comments

描述问题

这种应该怎么处理呢?更新了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

核对

  • [X] 遵循我们的 行为准则
  • [X] 检查是否已经有一个报告相同错误的问题,以避免重复创建。
  • [X] 这是一个具体的错误。请开启 GitHub 讨论你的疑问。
  • [X] 所提供的复现是这个问题的 最小复现

mistery-li avatar Jan 15 '24 01:01 mistery-li

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

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

KeJunMao avatar Jan 15 '24 03:01 KeJunMao

可以将 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提交前不会受到这两个文件的频繁变动的解决方案。

Vanisper avatar Mar 10 '24 18:03 Vanisper