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

feat: add plugin options cwd #83

Merged
merged 3 commits into from
Jul 25, 2024
Merged

feat: add plugin options cwd #83

merged 3 commits into from
Jul 25, 2024

Conversation

chuyuandu
Copy link
Contributor

set mockLoader's cwd with vite config root

@chuyuandu chuyuandu marked this pull request as ready for review July 25, 2024 05:27
Copy link

netlify bot commented Jul 25, 2024

Deploy Preview for vite-plugin-mock-dev-server ready!

Name Link
🔨 Latest commit 3bea852
🔍 Latest deploy log https://app.netlify.com/sites/vite-plugin-mock-dev-server/deploys/66a2098c652bca0008f76256
😎 Deploy Preview https://deploy-preview-83--vite-plugin-mock-dev-server.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@pengzhanbo
Copy link
Owner

我认为这不是一个合理的变更。

插件一开始在编写的时候就已经考虑过 cwd 选项的值,最终选择了 process.cwd()

process.cwd()viteConfig.root 是完全不等价的,在 vite 中, viteConfig.root 配置的是的是开发服务器启动时的 “根目录”,决定的是请求资源时,base 指向的目录。 查看文档

process.cwd() 表示的是 运行 vite 服务脚本的上下文,指向的是项目的 “根目录”。插件应该使用 该值 来加载 项目内的相关文件。

@chuyuandu
Copy link
Contributor Author

我认为这不是一个合理的变更。

插件一开始在编写的时候就已经考虑过 cwd 选项的值,最终选择了 process.cwd()

process.cwd()viteConfig.root 是完全不等价的,在 vite 中, viteConfig.root 配置的是的是开发服务器启动时的 “根目录”,决定的是请求资源时,base 指向的目录。 查看文档

process.cwd() 表示的是 运行 vite 服务脚本的上下文,指向的是项目的 “根目录”。插件应该使用 该值 来加载 项目内的相关文件。

正常情况下,使用 vite 命令启动 dev server 都没问题
现在我需要通过 js api createServer 来启动dev server,这个时候的 process.cwd 是在项目外的,且目前插件没有任何配置可以让我指定根目录, vite可以修改 root 配置来保证一切都ok,这个时候 mock 就找不到文件了

@pengzhanbo
Copy link
Owner

我认为这不是一个合理的变更。
插件一开始在编写的时候就已经考虑过 cwd 选项的值,最终选择了 process.cwd()
process.cwd()viteConfig.root 是完全不等价的,在 vite 中, viteConfig.root 配置的是的是开发服务器启动时的 “根目录”,决定的是请求资源时,base 指向的目录。 查看文档
process.cwd() 表示的是 运行 vite 服务脚本的上下文,指向的是项目的 “根目录”。插件应该使用 该值 来加载 项目内的相关文件。

正常情况下,使用 vite 命令启动 dev server 都没问题 现在我需要通过 js api createServer 来启动dev server,这个时候的 process.cwd 是在项目外的,且目前插件没有任何配置可以让我指定根目录, vite可以修改 root 配置来保证一切都ok,这个时候 mock 就找不到文件了

此 PR 可以变更为给插件增加一个 cwd 选项来实现,这样更为合理些。

@chuyuandu
Copy link
Contributor Author

我认为这不是一个合理的变更。
插件一开始在编写的时候就已经考虑过 cwd 选项的值,最终选择了 process.cwd()
process.cwd()viteConfig.root 是完全不等价的,在 vite 中, viteConfig.root 配置的是的是开发服务器启动时的 “根目录”,决定的是请求资源时,base 指向的目录。 查看文档
process.cwd() 表示的是 运行 vite 服务脚本的上下文,指向的是项目的 “根目录”。插件应该使用 该值 来加载 项目内的相关文件。

正常情况下,使用 vite 命令启动 dev server 都没问题 现在我需要通过 js api createServer 来启动dev server,这个时候的 process.cwd 是在项目外的,且目前插件没有任何配置可以让我指定根目录, vite可以修改 root 配置来保证一切都ok,这个时候 mock 就找不到文件了

此 PR 可以变更为给插件增加一个 cwd 选项来实现,这样更为合理些。

刚尝试加个 cwd 配置,发现代码中有 通过 options.cwd config.root process.cwd() 三种方式,我不确定哪些需要改,感觉有点乱,还是原创作者来增加这个配置比较好,并统一一下代码中的目录读取方式,感谢
image

@pengzhanbo
Copy link
Owner

pengzhanbo commented Jul 25, 2024

刚尝试加个 cwd 配置,发现代码中有 通过 options.cwd config.root process.cwd() 三种方式,我不确定哪些需要改,感觉有点乱,还是原创作者来增加这个配置比较好,并统一一下代码中的目录读取方式,感谢 image

build.ts 中的 mockEntry 是生成的一个临时的入口文件,主要是用于将其他的 mock 文件导入到同一个文件中进行编译,完成后该临时文件就会被删除。因此这里的 config.root 可以直接忽略它。

可能这里在我当时编写的时候没有考虑清楚,config.root 应该替换为 process.cwd() 才对。

那我就在这个 PR 上面修改吧

@pengzhanbo pengzhanbo changed the title feat: read cwd from vite config root feat: add plugin options cwd Jul 25, 2024
@pengzhanbo pengzhanbo merged commit 43cf97b into pengzhanbo:main Jul 25, 2024
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants