Giter Site home page Giter Site logo

mockServer 正常启动,但是接口进 mockServer 服务后报错,和一些实验性建议 about vite-plugin-mock-dev-server HOT 6 CLOSED

pengzhanbo avatar pengzhanbo commented on July 22, 2024
mockServer 正常启动,但是接口进 mockServer 服务后报错,和一些实验性建议

from vite-plugin-mock-dev-server.

Comments (6)

U-Wen avatar U-Wen commented on July 22, 2024

我将打包文件放到 nginx 之后,试图启动 mockServer 的数据,让页面显示正常。

为啥生产环境需要使用 mock 数据?

  • 后端接口并未写完,但是业主需要演示
  • 某些系统上线后,需要一些好看的假数据
  • 服务玩万一异常,切换成临时数据兜底(例如一些展示大厅的展示大屏)
  • ……

但是打包后脱离了 vite 依赖,启动将会失败:

[root@VM-4-4-centos mockServer]# yarn
yarn install v1.22.19
warning package.json: No license field
info No lockfile found.
warning mock-server: No license field
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
warning " > [email protected]" has unmet peer dependency "vite@>=3.0.0".
[4/4] Building fresh packages...
success Saved lockfile.
Done in 2.20s.
[root@VM-4-4-centos mockServer]# yarn start
yarn run v1.22.19
warning package.json: No license field
$ node index.js
node:internal/errors:478
    ErrorCaptureStackTrace(err);
    ^

Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'vite' imported from /www/wwwroot/nanke.wmxliu.cn/mockServer/node_modules/vite-plugin-mock-dev-server/dist/index.js
    at new NodeError (node:internal/errors:387:5)
    at packageResolve (node:internal/modules/esm/resolve:852:9)
    at moduleResolve (node:internal/modules/esm/resolve:901:20)
    at defaultResolve (node:internal/modules/esm/resolve:1115:11)
    at nextResolve (node:internal/modules/esm/loader:163:28)
    at ESMLoader.resolve (node:internal/modules/esm/loader:841:30)
    at ESMLoader.getModuleJob (node:internal/modules/esm/loader:424:18)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:76:40)
    at link (node:internal/modules/esm/module_job:75:36) {
  code: 'ERR_MODULE_NOT_FOUND'
}
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

from vite-plugin-mock-dev-server.

pengzhanbo avatar pengzhanbo commented on July 22, 2024

是否可以支持:打印输出请求进来的 info 信息,这样可以明确知道请求确实是到了这里,而不是开发者手动去检查

已添加该配置支持,默认 日志级别为 error , 可以根据需要配置 slient | debug | error | warn | info

是否可以支持:打包的 mockServer 在 dist 目录外面。这导致每次进行打包需要重新进入 mockServer 进行 install 和 start

这个已经支持了,查看文档。如果是相对路径,则相对于 vite config 的输出目录。

是否可以支持:将 mockServer 复制到 vite 项目之外时,能够正常启动。

当前版本由于 意外的依赖了 vite 内部的一些工具方法,导致了 运行错误。 已经将其迁移为 插件内置方法。

from vite-plugin-mock-dev-server.

U-Wen avatar U-Wen commented on July 22, 2024

收到,谢谢,辛苦了

这个已经支持了,查看文档。如果是相对路径,则相对于 vite config 的输出目录。

vite@5 中,使用相对目录,如果是在 dist 目录外面,则不会出现打包文件,例如 dist=../test/mockServer
而 dist=mockServer|./mockServer 则会在 dist/mockServer 生成

from vite-plugin-mock-dev-server.

pengzhanbo avatar pengzhanbo commented on July 22, 2024

@U-Wen 需要输出到其他目录,使用绝对路径配置即可。当配置为绝对路径时,使用的是 fs.writeFile 输出文件,而不是 vitectx.emitFile 输出文件。

build.dist: path.join(process.cwd(), 'other_dir')

from vite-plugin-mock-dev-server.

U-Wen avatar U-Wen commented on July 22, 2024

我改成了 join(process.cwd(), 'mockServer') 仍然无法生效,在项目内外都未找到 mockServer 目录
并且尝试了 pnpm yarnnpm
也尝试了 path.joinpath.resolve
这种方式也不行 join(process.cwd(), './dist/mock2')

环境

[email protected]
[email protected]
[email protected]
[email protected][email protected]
[email protected]
[email protected]

vite.config.ts

mockDevServerPlugin({
      log: 'info',
      prefix: `^${MOCK_DEV_PREFIX}/`, // 配置会被 mock-dev-server 插件拦截的前缀
      build: {
        serverPort: 3002, // mockServer 启动端口
        dist: join(process.cwd(), './dist/mock2'), // 生成可独立部署的 mockServer 文件在目录 dist/mockServer
        log: 'info',
      },
    }),

from vite-plugin-mock-dev-server.

pengzhanbo avatar pengzhanbo commented on July 22, 2024

@U-Wen 测试发现绝对路径下确实存在问题,路径检测时存在错误,目录未成功递归创建导致。
已修复该问题。

from vite-plugin-mock-dev-server.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.