2016-08-01 75 views
1

如何部署MEAN STACK + WEBPAC应用程序?在Azure上部署MEAN + Webpack

  • 我有一个MEAN堆栈+ WebPAC中的应用和服务器的NodeJS构建的WebPack应用之后 提供REST API
  • 我使用的WebPack开发服务器
  • 运行的角应用,我有build.js文件。

如何从nodejs应用程序引用构建文件?通常情况下,与requirejs,我会使用HTML脚本标记, 这样

<script src="build.js" /> 

我明白这不是WebPAC中的方式,

+0

现在有什么更新? –

+0

我不知道为什么人们低估这一点,因为这不是常识。人们通常会认为,你在package.json中提供的是足够的,但事实证明,你实际上必须在服务器上编辑批处理文件。根本不是开发者友好的,所以对于这个问题+1。 –

回答

8

一般来说,我们可以利用Custom Deployment Script安装的NodeJS模块和运行在Azure部署任务期间创建自定义脚本,以在Azure Web Apps上构建您的webpack应用程序。

请尝试以下操作:

  1. 通过azure-cli命令azure site deploymentscript --node --sitePath nodejs
  2. 运行NPM命令npm install --save webapck创建一个文件.deploymentdeploy.cmd安装webpack到本地应用程序的目录。
  3. package.json文件中定义一个定制的NPM脚本运行webpack命令,让部署任务调用后: "scripts": { "webpack":"node_modules/.bin/webpack" },
  4. 修改deply.cmd文件,添加一个进程来运行,我们定义了故宫脚本。在原来的文件,你可以找到类似的脚本安装Node.js的模块: :: 3. Install npm packages IF EXIST "%DEPLOYMENT_TARGET%\package.json" ( pushd "%DEPLOYMENT_TARGET%" call :ExecuteCmd !NPM_CMD! install --production IF !ERRORLEVEL! NEQ 0 goto error popd )
    我们可以在它定义自定义脚本: :: 4. webpack IF EXIST "%DEPLOYMENT_TARGET%\webpack.config.js" ( pushd "%DEPLOYMENT_TARGET%" call :ExecuteCmd !NPM_CMD! run webpack IF !ERRORLEVEL! NEQ 0 goto error popd )
  5. 通过部署你的Git应用程序的WebPack天青到Web应用程序。

这是我在Github上的测试webpack app repository,FYI。

+0

您好,感谢您的回答,但是,还有一件事是我的应用程序有一个nodejs express后端。我如何在部署时运行它们?谢谢 –

+2

在Azure上部署快速部署不需要配置部署脚本。您可以将入口文件重命名为'server.js'和'app.js',将监听端口更改为'process.env.port',并使用Gi​​t将其部署到Azure。有关更多信息,请参阅https://azure.microsoft.com/en-us/documentation/articles/app-service-web-nodejs-get-started/。 –

+0

我收到了一个错误,如“网站不是天蓝色的命令”。为了解决这个问题,首先输入以下命令:'azure config mode asm'。之后,'azure site'命令被识别。 – schlingel