Context:

对于客户端,我们希望使用Microsoft的Fabric UI开发Office Web插件 . Office Web加载项用作可在Office应用程序中显示的网页 . 与Office内容(文档/工作簿/表)的交互是通过Javascript API(Office.js)完成的 . 为了节省时间并确保加载项具有与Office应用程序相同的外观,使用了Fabric UI . Fabric UI包含一个类似bootstrap的包和一些可立即使用的组件,如文本字段,按钮和对话框 . Fabric UI以React形式和vanilla形式提供 .

The Problem:

Visual Studio 2017(与Office Developer工具结合使用)提供了许多模板来开发这些加载项 . 这些模板以这样一种方式设置解决方案,您可以直接从Visual Studio本身调试Office应用程序 . 我认为这是一个很大的优势 . 但是,这些模板不允许以简单的方式合并反馈版本的Fabric UI . 我知道Yeoman生成器也可以生成一个模板(用于(其他)文本编辑器),但据我所知,这个项目只能通过旁加载插件进行调试 . 后者非常不方便 .

通过Nuget包,可以实现Fabric的UI的非React版本 . 这意味着可以导入基本.css和.js文件,但是没有简单的方法来使用这些组件 . 每次实现组件时,都需要将该组件的所有html,css和javascript手动复制并粘贴到项目中 . 因此,我正在寻找一种方法来将Visual UI的React版本合并到Office加载项的Visual Studio模板中 . 遗憾的是,Fabric UI的React版本仅通过Node Package Manager(npm)提供,因此无法在Visual Studio模板中轻松实现 .

该模板由清单文件和修改后的ASP.Net Web项目组成 .

enter image description here

The solution I am looking for:

我正在寻找一种方法来将React Fabric UI添加到修改后的ASP.Net(Office Web Add-in)项目中 . 这可能意味着(1)React需要安装在ASP.Net项目中 . (2)Fabric React UI需要安装在ASP.Net项目中 . 我认为两个安装都需要通过Visual Studio Node.js工具完成,但我不清楚如何做到这一点 . (3)需要定义自定义构建操作以将.jsx编译为javascript . 在这方面我也不清楚 .

此外,我不确定这可能导致的问题,并怀疑我是否应该坚持复制单个组件 . 如果有人有一些建议的答案,那将非常感激 .

Related Stackoverflow Questions

我找到了几个相关的问题,但没有人回答 .

Question 1Question 2Question 3

Update 1:

我找到了一个Sharepoint应用程序的教程,似乎可以满足我的要求 . 我将在今晚和明天继续这项工作 . 如果我能够做到这一点,我会用一个解决方案报告 .

Tutorial

Update 2:

不幸的是,我无法按照本教程的步骤操作 . 所描述的许多步骤与我的开发环境不符 . 我的猜测是,这与Node.js和Office的模板设置方式的一些重大变化有关 .

目前我正在采取另一种策略 . (1)我将通过生成器或其他方式创建一个新的Office加载项Web项目 . (2)我将调整清单项目,使其链接到新项目,而不是生成的标准ASP.Net项目 .

会让你们更新!

Update 3: 我们通过使用.NET Core React项目并调整清单来实现它 . 无法将.NET Core React项目链接到清单项目,因为这些属性需要ASP.NET项目 . 这意味着您需要将清单和.NET Core React项目指定为启动项目 . 本周晚些时候将对这些步骤进行更详细的解释 .

注意:到目前为止,我们可以从Visual Studio中调试Office加载项 .