2017-01-25 2 views
16

Как заполнить fetch и promise для Webpack 2?Как полифонировать выборку и обещать с помощью webpack 2?

У меня много точек входа, поэтому Webpack 1-way для их добавления перед каждой точкой входа не является желательным решением.

+3

Почему вы просто не включать polyfills как одну запись? Они являются полифильмами, поэтому ни один модуль не будет импортировать/требовать их. – lorefnon

+0

Вы хотите загрузить polyfills в виде одиночного файла перед пакетами (у меня нет SPA. 1 страница = 1 пучок. Почему у меня много точек входа)? Если да - это еще один запрос GET =/В любом случае, приятный намек, спасибо. – bravedick

ответ

3

Возможно, я неправильно понимаю, но не могли бы вы добавить babel-polyfill перед остальными точками входа в конфигурацию вашего веб-пакета?

module.exports = { 
    entry: ['babel-polyfill', './app/js', '/app/js/whatever'] 
}; 
+0

записи - это объект: https://webpack.js.org/guides/code-splitting-libraries/#multiple -entries. Поэтому мне приходится много копировать их между клавишами. Я искал что-то, автоматически импортируя их для каждой точки входа. – bravedick

+0

Итак, по моему опыту вам нужно либо добавить «import» babel-polyfill'' в запуск приложения, обычно файл 'index.js', либо добавить его в каждую точку входа вручную в webpack. Я настоятельно рекомендую использовать первый, поскольку у большинства приложений есть одна точка запуска, и вам не нужно добавлять полипол. –

+4

FYI: babel-polyfill не включает выбор – Andrew

11

Независимо от того, сколько точек входа у вас есть, вы должны иметь отдельный файл для поставщика файлов, таких как базы (реагирует, угловой, whatevs) и любые библиотек всегда нужно, но редко собираюсь менять. Вы хотите, чтобы они были отдельным пакетом, чтобы вы могли его кэшировать. Этот комплект всегда должен быть загружен. Все, что вы включаете в этот пакет, всегда будет доступно, но никогда не будет повторяться в ваших кусках, если вы используете его с commonChunksPlugin.

Вот пример из приложения я сделал (только с указанием соответствующих параметров конфигурации):

module.exports = { 
    entry: { 
    client: 'client', 
    vendor: [ 
     'react', 
     'react-addons-shallow-compare', 
     'react-addons-transition-group', 
     'react-dom', 
     'whatwg-fetch' 
    ] 
    }, 
    output: { 
    path: `${__dirname}/dist`, 
    filename: '[name].js', 
    publicPath: '/build/' 
    }, 
    plugins: [ 
    new webpack.optimize.CommonsChunkPlugin({ 
     names: ['vendor', 'manifest'] 
    }) 
    ] 
} 
+0

Благодарим вас за ответ. Bounty скоро истечет, так что я даю его вам, как и большинству проголосовавших, но если у кого-то есть другой подход, вас приветствуют;) – bravedick

+0

Достаточно честный. Спасибо за щедрость – shadymoses

Смежные вопросы