使用zeit/pkg 打包 zeit/micro 项目
打包 micro 项目与其他 node 项目有所区别,micro程序在执行 node 时要先启动 micro,所以需要将 micro 打包,具体方式如下:
package.json
{
"name": "ms",
"version": "1.0.0",
"description": "",
"bin": "index.js",
"scripts": {
"prebuild": "pkg -t node8-alpine-x64 . -o app.bin",
"start": "node index.js"
},
"engines": {
"node": "8.x"
},
"author": "",
"license": "ISC",
"devDependencies": {
"pkg": "^4.2.5"
},
"dependencies": {
"pkg": "^4.2.5",
"amqp": "^0.2.6",
"dirtydb": "^1.0.4",
"fs": "0.0.1-security",
"micro": "^9.0.0",
"microrouter": "^2.2.3",
"mpromise": "^0.5.5",
"node-fetch": "^1.7.3",
"openssl-self-signed-certificate": "^1.1.6",
"url": "^0.11.0"
}
}
index.js
const routes = require('./main');
const serve = require('micro');
const port = process.env.PORT || 3000;
const server = serve(routes);
server.listen(port, () => console.log(`Listening on port ${port}`));
main.js
const { send, json } = require('micro');
const { router, get, post, del, put, options } = require('microrouter');
.....................
module.exports = router(
get('/v2/tests', findDatas),
get('/*', notfound)
);