Есть ли способ отправки запросов прокси в Parcel как в Webpack? - PullRequest
0 голосов
/ 23 декабря 2018

В Webpack есть возможность прокси-запросов к серверу через настройку proxy в файле конфигурации.Это позволяет мне разрабатывать интерфейсную часть моего приложения с webpack-dev-server с HMR, в то время как webpack-dev-server и мой сервер приложений работают на разных портах на моем локальном хосте.В Parcel также имеется сервер разработки, который по умолчанию запускается командой parcel index.html на порту 1234. Есть ли способ выполнить запросы сервера и прокси-сервера Parcel на мой сервер приложений?

Я нашел решение, котороепредлагает использовать для этого промежуточное ПО Express.Но это не решает проблему полностью и чисто.Что если в моем бэкэнде работает Django?Как мне тогда использовать Parcel dev server?

Ответы [ 2 ]

0 голосов
/ 23 июля 2019

Существует модуль npm parcel-proxy-server , который может помочь.Я сам попробовал, и он хорошо работает для моего проекта.

Из документации: создайте файл, например server.js

const ParcelProxyServer = require('parcel-proxy-server');

// configure the proxy server
const server = new ParcelProxyServer({
  entryPoint: './path/to/my/entry/point',
  parcelOptions: {
    // provide parcel options here
    // these are directly passed into the
    // parcel bundler
    //
    // More info on supported options are documented at
    // https://parceljs.org/api
    https: true
  },
  proxies: {
    // add proxies here
    '/api': {
      target: 'https://example.com/api'
    }
  }
});

// the underlying parcel bundler is exposed on the server
// and can be used if needed
server.bundler.on('buildEnd', () => {
  console.log('Build completed!');
});

// start up the server
server.listen(8080, () => {
  console.log('Parcel proxy server has started');
});

, затем вызовитеnode server.js для запуска вашего прокси и команда посылки по умолчанию.

0 голосов
/ 22 мая 2019

В настоящее время это напрямую не поддерживается, см. Открытый запрос на получение доступа https://github.com/parcel-bundler/parcel/pull/2477

Однако https://github.com/parcel-bundler/parcel/issues/55 и перечислены различные решения, включающие простую оболочку, например:

const Bundler = require('parcel-bundler');
const express = require('express');
const proxy = require('http-proxy-middleware');

const app = express();

app.use('/api', proxy({
  target: 'http://localhost:3000/api'
}));

const bundler = new Bundler('src/index.html');
app.use(bundler.middleware());

app.listen(Number(process.env.PORT || 1234));

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