Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug] .umi/core/helmet.ts 自动生成时未正确处理 Windows 路径中的单引号导致语法错误 #12934

Open
leelynnjaytop opened this issue Feb 21, 2025 · 6 comments

Comments

@leelynnjaytop
Copy link

leelynnjaytop commented Feb 21, 2025

What happens?

当项目路径包含单引号 ' 时(例如 C:/Users/Jeri'o/...),Umi 自动生成的 polyfill.ts 文件中的导入路径字符串会因未转义单引号导致语法错误,具体报错如下:

 npm install

> [email protected] postinstall
> max setup

info  - [你知道吗?] 编写 src/loading.(jsx|tsx) 可以自定义页面的加载动画。
info  - generate files
fatal - SyntaxError: ....../polyfill.ts: Missing semicolon. (3:22)

  1 |
  2 | import 'core-js';
> 3 | import 'C:/Users/Jeri'o/Desktop/project/....../frontend/node_modules/@umijs/preset-umi/node_modules/regenerator-runtime/runtime.js';
    |                       ^
  4 | export {};
  5 |
    at constructor (C:\Users\......

How To Reproduce

  1. 新建一个含特殊字符(')的目录,例如 Use'r
  2. 进入目录里 npx create-umi@latest

项目github仓库:https://github.com/leelynnjaytop/umi
在线复现链接:https://1024code.com/~lilinjie/nry6osa

Context

  • 操作系统:Windows 11
  • Umi 版本:4.1.1
  • Node.js 版本:18.x
  • 包管理器:pnpm 8.x

可能的解决方案建议

  1. 使用双引号包裹路径字符串(import "...")
  2. 在生成路径时对单引号进行转义
  3. 检测路径中的特殊字符并自动处理
Copy link

由于缺乏足够的信息,我们暂时关闭了该 Issue。请修改(不要回复) Issue 提供最小重现以重新开启。谢谢。

@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Feb 21, 2025
@github-actions github-actions bot reopened this Feb 22, 2025
@xiaohuoni
Copy link
Member

文件夹命名的时候是不允许使用单引号的,这个用户名就很夸张

@leelynnjaytop
Copy link
Author

文件夹命名的时候是不允许使用单引号的,这个用户名就很夸张

所以感觉这个bug基本改不了,其实不用在用户名目录下就可以了。

@xiaohuoni
Copy link
Member

xiaohuoni commented Mar 10, 2025

@leelynnjaytop 你可以尝试修复一下,在这里修改即可。packages/utils/src/winPath.ts 我试了我的window电脑,不知道怎么搞出这个用户名

@leelynnjaytop
Copy link
Author

@leelynnjaytop 你可以尝试修复一下,在这里修改即可。packages/utils/src/winPath.ts 我试了我的window电脑,不知道怎么搞出这个用户名

建一个 /Use'r/ 这种带 ' 的文件夹,在里面操作就能复刻了

@freeliujian
Copy link

@leelynnjaytop 你可以尝试修复一下,在这里修改即可。packages/utils/src/winPath.ts 我试了我的window电脑,不知道怎么搞出这个用户名

只要加一个单引号就可以了吗?我可以试试 。#12965

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants