微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从 Swift 项目中的 Next.js 项目运行 yarn dev?

如何解决如何从 Swift 项目中的 Next.js 项目运行 yarn dev?

在复制文件构建阶段,我有一个包含 Next.js 项目的目录,“仅在安装时复制”到“资源”目标。我还有一个 Resources 文件夹,其中包含 web 项目目录

在我的 AppDelegate 中,我正在加载目录,但不清楚如何在其中/在其上运行 yarn dev

if let url = Bundle.main.url(forResource: "web",withExtension: nil) {
  let process = Process()

  // Unsure what to do here to run `yarn dev` and start my local server. 

  do {
     try process.run()
  }

  catch {
     print("some error occurred")
     print("")
  }
}

我怎样才能让它正常工作?

谢谢!

编辑

这是一个全新的项目,所以我现在只使用 index.js 项目中的 web 文件。通常在终端中,我只需 cd 进入 web 并运行 yarn dev 以在 localhost:3000 处启动服务器,所以这基本上就是我在这里尝试做的。谢谢

以下是 Resources/web 文件夹的内容

enter image description here

解决方法

假设您已将 shell 脚本放在主应用程序的 Resources 文件夹中,并且您运行的是 macOS 10.13 或更高版本,请使用以下代码:

if let url = Bundle.main.url(forResource: "run_server",withExtension: "sh") {
     guard let resourcesURL = Bundle.main.resourceURL else { return }
     let webURL = resourcesURL.appendingPathComponent("web")
     let process = Process()
     process.launchPath = "/bin/bash"
     process.arguments = [url.path,webURL.path]
     
     do {
         try process.run()
     }

     catch {
         // handle any errors here
     }
}

关于你的脚本,我会使用这样的东西:

#!bin/bash

cd $1
yarn dev -p 3000

$1 将设置为作为第二个参数传递给将运行您的 shell 的 process 的路径。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。