From 7e147d077c27870ab2b7c66a673367c21ff01af3 Mon Sep 17 00:00:00 2001 From: Helen Miller Date: Thu, 2 Apr 2020 08:16:05 -0700 Subject: [PATCH] Add option to build React webpart --- .gitignore | 2 ++ demo/webpack/app.webpart.template.xml | 4 ++++ demo/webpack/entryPoints.js | 6 ++++-- demo/webpack/prod.config.js | 20 ++++++++++++++++++++ 4 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 demo/webpack/app.webpart.template.xml diff --git a/.gitignore b/.gitignore index 6cd860c..3d6b622 100644 --- a/.gitignore +++ b/.gitignore @@ -3,8 +3,10 @@ demo/node_modules demo/resources/web/demo/gen demo/resources/views/helloWorld.html demo/resources/views/helloWorld.view.xml +demo/resources/views/helloWorld.webpart.xml demo/resources/views/helloWorldDev.html demo/resources/views/helloWorldDev.view.xml +demo/resources/views/helloWorldDev.webpart.xml demo/resources/views/todoList.html demo/resources/views/todoList.view.xml demo/resources/views/todoListDev.html diff --git a/demo/webpack/app.webpart.template.xml b/demo/webpack/app.webpart.template.xml new file mode 100644 index 0000000..935181b --- /dev/null +++ b/demo/webpack/app.webpart.template.xml @@ -0,0 +1,4 @@ + + + diff --git a/demo/webpack/entryPoints.js b/demo/webpack/entryPoints.js index fc5687f..687d2b9 100644 --- a/demo/webpack/entryPoints.js +++ b/demo/webpack/entryPoints.js @@ -8,11 +8,13 @@ module.exports = { name: 'helloWorld', title: 'Hello World Page', permission: 'read', - path: './src/client/HelloWorldPage' + path: './src/client/HelloWorldPage', + webpart: true },{ name: 'todoList', title: 'To-Do List Page', permission: 'insert', - path: './src/client/ToDoListPage' + path: './src/client/ToDoListPage', + webpart: false }] }; \ No newline at end of file diff --git a/demo/webpack/prod.config.js b/demo/webpack/prod.config.js index f41a98a..df1704f 100644 --- a/demo/webpack/prod.config.js +++ b/demo/webpack/prod.config.js @@ -46,6 +46,26 @@ for (let i = 0; i < entryPoints.apps.length; i++) { template: 'webpack/app.template.html' }) ]); + + if (entryPoint.webpart) { + plugins = plugins.concat([ + new HtmlWebpackPlugin({ + inject: false, + name: entryPoint.name, + title: entryPoint.title, + filename: '../../../views/' + entryPoint.name + '.webpart.xml', + template: 'webpack/app.webpart.template.xml' + }), + new HtmlWebpackPlugin({ + inject: false, + mode: 'dev', + name: entryPoint.name + "Dev", + title: entryPoint.title + " Dev", + filename: '../../../views/' + entryPoint.name + 'Dev.webpart.xml', + template: 'webpack/app.webpart.template.xml' + }) + ]) + } } plugins.push(new MiniCssExtractPlugin());