最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

我怎样才能设置火力地堡托管multisites与Nextjs

IT培训 admin 4浏览 0评论

我怎样才能设置火力地堡托管multisites与Nextjs

我试图部署nextjs应用火力托管和想支持多个站点。当我部署它的所有应用程序呈现的默认应用程序。我怎样才能解决这个问题?

我下面就部署多个网站使用AngularJs到火力教程here,我试图用NextJs更换Angularjs

在脚本的package.json

{
  "scripts": {
    "accounts": "next \"src/apps/accounts/\"",
    "accounts-build": "next build \"src/apps/accounts/\"",

    "admin": "next \"src/apps/admin/\"",
    "admin-build": "next build \"src/apps/admin/\"",
    "preserve": "npm run build-public && npm run build-funcs && npm run admin-build && npm run copy-deps && npm run install-deps",
    "serve": "cross-env NODE_ENV=production firebase serve",
    "predeploy": "npm run build-public && npm run build-funcs && npm run accounts-build && npm run admin-build && npm run copy-deps",
    "deploy": "firebase deploy",
    "clean": "rimraf \"dist/functions/**\" && rimraf \"dist/public\"",
    "build-public": "cpx \"src/public/**/*.*\" \"dist/public\" -C",
    "build-funcs": "babel \"src/functions\" --out-dir \"dist/functions\"",
    "copy-deps": "cpx \"*{package.json,package-lock.json,yarn.lock}\" \"dist/functions\" -C",
    "install-deps": "cd \"dist/functions\" && npm i"
  }
}

firebase.json

{
  "hosting": [
    {
      "target": "accounts",
      "public": "dist/public",
      "rewrites": [
        {
          "source": "**/**",
          "function": "accounts"
        }
      ]
    },
    {
      "target": "admin",
      "public": "dist/public",
      "rewrites": [
        {
          "source": "**/**",
          "function": "admin"
        }
      ]
    }
  ],
  "functions": {
    "source": "dist/functions"
  }
}

.firebaserc

{
  "projects": {
    "default": "example-app"
  },
  "targets": {
    "example-app": {
      "hosting": {
        "accounts": [
          "example-accounts"
        ],
        "admin": [
          "example-admin"
        ]
      }
    }
  }
}

在功能index.js

import {https} from 'firebase-functions'

const dev = process.env.NODE_ENV !== 'production'
const app = require('next')({dev, conf: {distDir: 'next'}})
const handle = app.getRequestHandler()

const accounts = https.onRequest((req, res) =>
    app.prepare().then(() => handle(req, res)))

const admin = https.onRequest((req, res) =>
    app.prepare().then(() => handle(req, res)))

export {accounts, admin}

next.config.js它移动到根文件夹

module.exports = {
  distDir: '../../../dist/functions/next'
}

所有应用中呈现的默认帐户应用。想管理员渲染管理应用。

回答如下:

当您在不同的文件夹作为管理员,占在你的应用程序目录,所以当你正在构建为他们每个人的next.js总是考虑你正在最后的构建和服务上次生成的页面,以便解决这个问题,我们有建立在不同的目录中建立admin的目录将是

DIST /功能/管理/下一

并为客户的目录将是

DIST /功能/帐号/下一个

你必须定义不同DISTDIR该如此,而服务页面它将在指定的目录,请改变你

next.config.js对admin

module.exports = {
  distDir: '../../../dist/functions/admin/next'
}

next.config.js的账户

module.exports = {
  distDir: '../../../dist/functions/accounts/next'
}

保持这种分别next.config.js在你的src /应用/管理和src /应用/用户目录,并改变你的

在功能index.js

import {https} from 'firebase-functions'

const dev = process.env.NODE_ENV !== 'production'
const appAdmin = require('next')({dev, conf: {distDir: 'admin/next'}});

const appAccounts= require('next')({dev, conf: {distDir: 'accounts/next'}});

const handle = app.getRequestHandler()

const accounts = https.onRequest((req, res) =>
    appAccounts.prepare().then(() => handle(req, res)))

const admin = https.onRequest((req, res) =>
    appAdmin.prepare().then(() => handle(req, res)))

export {accounts, admin}

我怎样才能设置火力地堡托管multisites与Nextjs

我试图部署nextjs应用火力托管和想支持多个站点。当我部署它的所有应用程序呈现的默认应用程序。我怎样才能解决这个问题?

我下面就部署多个网站使用AngularJs到火力教程here,我试图用NextJs更换Angularjs

在脚本的package.json

{
  "scripts": {
    "accounts": "next \"src/apps/accounts/\"",
    "accounts-build": "next build \"src/apps/accounts/\"",

    "admin": "next \"src/apps/admin/\"",
    "admin-build": "next build \"src/apps/admin/\"",
    "preserve": "npm run build-public && npm run build-funcs && npm run admin-build && npm run copy-deps && npm run install-deps",
    "serve": "cross-env NODE_ENV=production firebase serve",
    "predeploy": "npm run build-public && npm run build-funcs && npm run accounts-build && npm run admin-build && npm run copy-deps",
    "deploy": "firebase deploy",
    "clean": "rimraf \"dist/functions/**\" && rimraf \"dist/public\"",
    "build-public": "cpx \"src/public/**/*.*\" \"dist/public\" -C",
    "build-funcs": "babel \"src/functions\" --out-dir \"dist/functions\"",
    "copy-deps": "cpx \"*{package.json,package-lock.json,yarn.lock}\" \"dist/functions\" -C",
    "install-deps": "cd \"dist/functions\" && npm i"
  }
}

firebase.json

{
  "hosting": [
    {
      "target": "accounts",
      "public": "dist/public",
      "rewrites": [
        {
          "source": "**/**",
          "function": "accounts"
        }
      ]
    },
    {
      "target": "admin",
      "public": "dist/public",
      "rewrites": [
        {
          "source": "**/**",
          "function": "admin"
        }
      ]
    }
  ],
  "functions": {
    "source": "dist/functions"
  }
}

.firebaserc

{
  "projects": {
    "default": "example-app"
  },
  "targets": {
    "example-app": {
      "hosting": {
        "accounts": [
          "example-accounts"
        ],
        "admin": [
          "example-admin"
        ]
      }
    }
  }
}

在功能index.js

import {https} from 'firebase-functions'

const dev = process.env.NODE_ENV !== 'production'
const app = require('next')({dev, conf: {distDir: 'next'}})
const handle = app.getRequestHandler()

const accounts = https.onRequest((req, res) =>
    app.prepare().then(() => handle(req, res)))

const admin = https.onRequest((req, res) =>
    app.prepare().then(() => handle(req, res)))

export {accounts, admin}

next.config.js它移动到根文件夹

module.exports = {
  distDir: '../../../dist/functions/next'
}

所有应用中呈现的默认帐户应用。想管理员渲染管理应用。

回答如下:

当您在不同的文件夹作为管理员,占在你的应用程序目录,所以当你正在构建为他们每个人的next.js总是考虑你正在最后的构建和服务上次生成的页面,以便解决这个问题,我们有建立在不同的目录中建立admin的目录将是

DIST /功能/管理/下一

并为客户的目录将是

DIST /功能/帐号/下一个

你必须定义不同DISTDIR该如此,而服务页面它将在指定的目录,请改变你

next.config.js对admin

module.exports = {
  distDir: '../../../dist/functions/admin/next'
}

next.config.js的账户

module.exports = {
  distDir: '../../../dist/functions/accounts/next'
}

保持这种分别next.config.js在你的src /应用/管理和src /应用/用户目录,并改变你的

在功能index.js

import {https} from 'firebase-functions'

const dev = process.env.NODE_ENV !== 'production'
const appAdmin = require('next')({dev, conf: {distDir: 'admin/next'}});

const appAccounts= require('next')({dev, conf: {distDir: 'accounts/next'}});

const handle = app.getRequestHandler()

const accounts = https.onRequest((req, res) =>
    appAccounts.prepare().then(() => handle(req, res)))

const admin = https.onRequest((req, res) =>
    appAdmin.prepare().then(() => handle(req, res)))

export {accounts, admin}
发布评论

评论列表 (0)

  1. 暂无评论