Nuxt.js:在 1 个项目中管理多个网站/域

Bep*_*ppe 2 vue.js nuxt.js

假设我们有website A, website B, website C。它们都将位于自己的域 ( mypage-a.com, mypage-b.com, mypage-c.com) 中。使用的框架是nuxt.js。

但是,所有 3 个网站都应该可以访问相同的/components目录。因此,能够为所有 3 个网站拥有相同的项目是有意义的。

我们怎样才能最好地设置它?似乎我们必须对默认设置进行很多调整。需要提及的重要事项:

  • 我们的网站都是 100% 静态的(没有 SPA,没有 SSR)
  • 我们只使用<a>标签,没有<nuxt-link>
  • /components所有 3 个子项目都应该使用相同的目录

Bep*_*ppe 7

我们是这样解决的:

  • 所有项目的 1 个存储库

  • 在一个目录中projects,我们定义了我们需要的所有子项目,都有自己的nuxt.config.js

  • 共享组件在根目录下

  • 其他共享代码(nuxt.config.base.js, css 等)进入根目录,如果需要,end 由子项目扩展

|-components
|-projects
  |-A
    |-components
    |-pages
    |-nuxt.config.js
    |-...
  |-B
    |-...
|-nuxt.config.base.js
Run Code Online (Sandbox Code Playgroud)

  • 这是一个私人仓库,所以不幸的是我无法分享它。但要回答你的问题: 1. 我们对所有项目使用 1 个存储库,其结构大致如答案中所示 2. 每个项目都有一个 nuxt.config.js,它扩展根目录中的基本配置,其中包含所有共享设置。如果使用 env-vars,您实际上可以将几乎所有配置移动到根配置 3. 每个项目都有 npm 脚本,例如 `"a:generate": "nuxtgenerate --config-fileprojects/a/ nuxt.config.js",` 4. 全局的东西(组件、scss mixins 等)位于根目录中,并且每个项目都可以访问 (3认同)

小智 2

如果它们是完全静态的并且始终使用相同的组件,则您可以拥有 3 个不同的项目,但从“master/sharedcomponents”目录符号链接“components”目录。

然后,您需要在编辑组件后 npm run 生成每个项目,但这应该就是这样。

我也做过类似的事情。虽然看起来很有趣,但请确保您的项目确实紧密相关,否则可能会带来更多问题。