Я хочу "Gatsby Build" и развернуть в подкаталог - PullRequest
0 голосов
/ 06 августа 2020

Я прочитал https://www.gatsbyjs.org/docs/path-prefix/ и добавил в gatsby-configs следующее: js.

{
  pathPrefix: "/modules/custom/gatsby/gatsby-shopify-starter/public",
},

И я выполняю sudo gatsby build --prefix-paths на терминале. Но я получил это сообщение об ошибке.

ERROR

The "path" argument must be of type string. Received an instance of Object

Error: TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type s  tring. Received an instance of Object

Что я делаю не так?

1 Ответ

1 голос
/ 06 августа 2020

Gatsby's pathPrefix только добавляет строку к маршрутам вашего проекта (url). Сценарии развертывания должны обрабатывать, где заканчивается папка publi c на вашем сервере. Если вы действительно хотите опубликовать sh свой проект gatsby где-нибудь, кроме /public (локально), вам, вероятно, потребуется сделать что-то вроде использования fs и path в onPostBuild в gatsby- node.js для перемещения все в другой каталог. На момент написания этой статьи Gatsby напрямую не поддерживает альтернативные каталоги сборки, поэтому вы можете использовать gatsby develop или gatsby serve для просмотра этого локально самостоятельно.

Попробуйте что-то подобное в gatsby- node.js но измените пути, чтобы удовлетворить свои потребности. В этом примере sh ваш проект будет опубликован в /public/blog, а не в /public по умолчанию, и это просто подтверждение концепции, но я протестировал его, и он работает:

const path = require('path');
const fs = require('fs');

exports.onPostBuild = function() {
  fs.renameSync(path.join(__dirname, 'public'), path.join(__dirname, 'public-blog'));

  fs.mkdirSync(path.join(__dirname, 'public'));

  fs.renameSync(path.join(__dirname, 'public-blog'), path.join(__dirname, 'public', 'blog'));
};

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...