乐趣区

关于javascript:nodeejs-项目打包

之前遇到过一次简略我的项目, 根本是动态页面, 然而却是须要反对 seo, 而且根本所有信息都是在后盾配置生成,
所以就用了 node+ejs 这样比拟传统的形式, 在此记录一下全流程

所需原料: node+ejs+express+jquery

生成根本文件夹

npm install express express-generator -g // 曾经装置了就疏忽
express -e myapp // 应用 express-generator 疾速生成我的项目

进入我的项目文件夹, 装置根本依赖包, 启动我的项目

cd myapp
npm install
npm start

最初失去一个这样的文件夹

请留神:error.ejs 必须存在, 相对不能删除; 我的项目必须要有一个包容谬误显示的页面

ps: 在 app.js 外面有 app.use(express.static(path.join(__dirname, 'public'))); 指定动态资源, 所以在页面外面的资源文件, 比方图片的援用都是/images/a.png;

打包

在实现了我的项目最初打包上线, 因为之前我也没遇到这样的状况, 都是应用 vue+webpack 这样的搬砖模式, 遇到这货色也是摸着石头过河, 找了半天找到了一个 pkg 的打包工具, 这个工具能够把 node 我的项目打包成为一个脱离 node 独立运行的可执行文件, 并且默认能够反对 3 个平台,linux,macos,windows;
上面介绍打包步骤 (请留神, 如果你有更好的方法就不要用这样的做法了, 如果有更好的方法心愿指教一下)
这里有篇更好的文章应用 pkg 打包 node 利用

如果你遇到打包进去短少文件之类的看看是不是配置的打包资源配置有问题, 我是这样配置的

如果你的打包过程顺利的话会失去 3 个文件, 别离对应 3 个平台的可执行文件, 接下来把这 3 个文件放到服务器下, 接下来配置服务器 pm2.

pm2 能够将你的程序挂在后盾执行, 并且还有很多其余的性能, 如果没有装置 pm2 就去装置一下.

启动服务

进入到你我的项目寄存目录,(这里假如你的我的项目叫 app)如果你遇到了执行没有权限的报错, 就在当前目录执行 chmod 777 app 获取权限, 获得权限之后执行 pm2 app , 胜利的话就会失去启动信息;

域名, 代理配置

上面其实只是个代理转发, 应用 nginx 做了一下代理

server {             
    listen 80;
    charset utf-8;
    server_name www.xsxs.com; 
    location / {
        proxy_pass http://localhost:3000;   #端口号
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}
退出移动版