使用npm+babel+webpack+React搭建SharePoint hosted add-in开发环境

使用VS2017,npm, babel, webpack,react 搭建一个SharePoint hosted add-in的开发环境,主要目的是使用SharePoint提供的Office Fabric UI React component。


1,首先使用VS 2017创建SharePoint hosted addin项目,创建好的项目结构如下:


此solution所在的文件目录为D:\Test\BlogDemo:


2,下载安装Node JS,下载地址:https://nodejs.org/zh-cn/download/

使用VS在刚刚创建的solution中创建一个Blank Node.js Web Application项目:


创建之后,solution结构如下:


其中server.js我们用不到,可以删除。

3,接下来开始配置前端开发环境,首先打开poweshell,进入node.js项目“BlogDemo.UX”的根目录。


4,首先在此目录初始化npm,命令为:npm init


会提示输入一些信息,直接回车使用默认值即可,运行完成之后,会更新package.json这个包配置文件如下:


5,使用命令 "npm install webpack --save-dev" 安装webpack:


安装完毕:


安装结束之后,BlogDemo.UX项目中的package.json文件添加了新的内容,标注webpack的版本:



然后我们来配置使用webpack。webpack需要一个文件作为执行入口,需要一个文件夹来保存生成的js文件,这两个地址都需要在webpack的配置文件中指定。

按照约定俗成,入口文件一般放在一个名为src的文件夹中,文件名为index.js,用来保存生成的js文件的文件夹一般取名为dist,外加webpack的配置文件“webpack.config.js”,一共需要创建两个文件夹以及两个文件如下所示:


index.js文件只是一个普通的js文件,只是向控制台输出字符串:


webpack.config.js配置文件如下,指定了文件入口地址(“entry”),文件生成地址(“dist“文件夹,以及filename指定的文件名):


配置完成之后,就可以在powershell中运行webpack来测试了:


运行成功之后,会发现dist文件夹中出现了一个App.js文件:


每次在powershell中执行webpack比较麻烦,我们可以将这个命令添加到package.json文件中,利用VS的Task Runner Explorer来执行这个命令。将package.json中的script节点修改如下:


在VS中View->Other Windows->Task Runner Explorer打开Task Runner Explorer,会发现有一个”build“ task,右键执行这个task,就会自动运行”webpack”命令了,很方便:



6,安装babel


按照完成之后package.json会自动添加babel的配置信息:


然后需要在webpack.config.js中添加module来配置babel-loader:


配置完成之后运行build,检查一下是否成功:



7,安装react, react-dom:

安装babel-preset-react:


添加babel配置文件.babelrc:


.babelrc配置文件内容如下:



使用react修改index.js,render一个div到id为root的div中:


然后重新执行build,确保webpack执行成功。

8,post-build 命令

react开发框架已经完成了,现在需要做的是,在我们的SharePoint hosted add-in编译的时候,将webpack生成的App.js复制到“Scripts”文件夹下,替代原有的默认的App.js文件。然后再default.aspx页面中引用这个App.js文件。这里可以使用post-build命令完成。打开BlogDemo项目的属性,点击Build Events,再pre-build event command line中添加如下命令:

copy "$(SolutionDir)BlogDemo.ux\dist\App.js" "$(SolutionDir)addinshare.ipeditor\Scripts\App.js"



然后编辑default.aspx文件,添加对react js的引用,另外添加一个id为root的div节点,并将App.js的引用改到div节点后面:

    <script type="text/javascript" src="https://unpkg.com/react@16/umd/react.development.js"></script>
    <script type="text/javascript" src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>



9,直接F5部署到Office 365站点上,可以看到add-in的主页default.aspx中显示的使用React方法输出的div信息:



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值