尝试在Azure Web App上部署和运行Next.js.使用Express.js运行Azure Web App时可以正常工作,但只要我调用nex()
就失败了。尝试在Azure门户中启用错误记录,但没有出现任何用途,只有通用500错误。
以下是有效的,有效的是什么。
使用:
var express = require('express');
var expressServer = express();
expressServer.get('/', function (req, res) {
res.send('Express is working on IISNode!');
});
expressServer.listen(process.env.PORT || 8080);
不起作用:
var express = require('express');
const next = require('next');
var expressServer = express();
var app = next();
expressServer.get('/', function (req, res) {
res.send('Express is working on IISNode!');
});
expressServer.listen(process.env.PORT || 8080);
由于app = next()
失败,我甚至不打扰获取请求处理程序。
的package.json:
"engines": {
"node": "9.4.0 || 8.9.x"
},
"author": "",
"license": "ISC",
"dependencies": {
"express": "^4.16.2",
"next": "^4.2.3",
"next-redux-wrapper": "^1.3.5",
"react": "^16.2.0",
"react-dom": "^16.2.0",
"react-redux": "^5.0.6",
"redux": "^3.7.2",
"redux-thunk": "^2.2.0"
},
"devDependencies": {
"babel-preset-es2015": "^6.24.1",
"babel-preset-stage-2": "^6.24.1",
"nodemon": "^1.14.11"
}
修改
我认为问题是next build
需要先运行。我正在寻找是否可以添加一些像Kudu这样的post deployment / build命令。如果您有任何建议,请告诉我。
答案 0 :(得分:4)
你是对的,你需要先运行next build
。
因此,如果您在项目根目录下创建pages
目录并编辑package.json
以添加此目录,这将在Azure Web App中有效:
"scripts": {
"postinstall": "next build"
}