2016-05-02 21 views
0

Есть ли способ разделить приложение React/Redux на модули во время сборки webpack? Допустим, у меня есть набор компонентов, связанных с пользователем и другими, относящимися к счетам-фактурам. Я хотел бы, чтобы webpack создавал users.js и invoices.js, которые я мог бы импортировать в index.html, и поскольку я мог бы изменить некоторые компоненты, связанные с пользователем, я бы просто заменил users.js на рабочем сервере, оставив invoices.js нетронутым.React build multiple files

Возможно ли такое модульность реализовать? Большое спасибо за ответы любого рода

ответ

0

Что вы ищете несколько точек входа

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

var path = require("path"); 
var webpack= require("webpack"); 
module.exports = { 
    entry: { 
     users: "./users", 
     invoices: "./invoices" 
    }, 
    output: { 
     path: path.join(__dirname, "js"), 
     filename: "[name].bundle.js", 
     chunkFilename: "[id].chunk.js" 
    }, 
    plugins: [ 
     new webpack.optimize.CommonsChunkPlugin({ 
      filename: "commons.js", 
      name: "commons" 
     }) 
    ] 
} 

здесь является более детальное example из WebPack себя

+0

Я считаю, что это тт. И могу ли я спросить, что происходит с редукторами? они также будут упакованы в соответствующие пакеты? –

+0

редукторы загружаются как часть создания магазина. 'import todoApp из './reducers'; let store = createStore (todoApp) 'Я бы предположил, что у вас есть один магазин и является общим. Таким образом, редукторы будут упакованы в общий комплект, который будет иметь доступ к каждому узлу. –

+0

теперь это было бы иначе, если бы каким-то образом 'users.js' и' invoices.js' нужны разные магазины редукции. Если они полагаются на совершенно разные магазины, сборка работает так же, как и любые другие модули, что-то уникальное для 'users.js' или' invoices.js' будет в комплекте с ней. –