CNode

Nuxt.js+express该如何部署【已解决】

问答
Jjustyeh发布于9 年前最后回复9 年前12 回复12406 浏览0 收藏

我最近决定上线一个Vue SSR项目,使用的是Nuxt.js+express+mysql,代码已经有个样子了,于是决定到线上跑一下! 我是这样构想的: 将项目在Linux上跑起来(使用PM2),使用Nginx将80端口代理到node端口上! 我遇到了以下问题: 在我的电脑本地,使用以下命令可以正常运行:

npm run build
npm start

但是使用pm2时确跑不起来,这是脚本:

pm2 start npm --name 'justyeh' -- start

错误日志里面包含了许多这样的信息:

D:\NODEJS\NPM.CMD:1
(function (exports, require, module, __filename, __dirname) { :: Created by npm, please don't edit manually.
                                                              ^
SyntaxError: Unexpected token :
    at createScript (vm.js:56:10)
    at Object.runInThisContext (vm.js:97:10)
    at Module._compile (module.js:542:28)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Object.<anonymous> (C:\Users\yeh\AppData\Roaming\npm\node_modules\pm2\lib\ProcessContainerFork.js:53:21)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)

我在纠结的是部署的思路是否正确,如果错了,大家能否为我提供一个思路; 如果这样思路是对的,如何解决这个问题?

查看回复

回复 (12)

J
justyeh#1·9 年前

这是我的package.json:

"scripts": {
    "dev": "backpack dev",
    "build": "nuxt build && backpack build",
    "start": "cross-env NODE_ENV=production node build/main.js",
    "precommit": "npm run lint",
    "lint": "eslint --ext .js,.vue --ignore-path .gitignore .",
    "generate": "nuxt generate",
    "nuxt-build": "nuxt build",
    "nuxt-start": "nuxt start"
  }
N
nickleefly#2·9 年前

先到你的project目录,再执行

pm2 start npm --name 'justyeh' -- start
H
hxh1246996371#3·9 年前

感觉你的 package.json 有问题吧,同样是基于 nuxt express 的项目,刚刚上线,已经部署到阿里云上 pm2 启动的,nginx 做反向代理,Letencrypt 做 SSL https://github.com/awesomes-cn/news

S
solarhell#4·9 年前

image.png

H
hxh1246996371#5·9 年前
引用 solarhell

@solarhell 求浏览器版本

S
solarhell#6·9 年前
引用 hxh1246996371@solarhell 求浏览器版本

@hxh1246996371 Chrome 59.0.3071.104

H
hxh1246996371#7·9 年前
引用 solarhell@hxh1246996371 Chrome 59.0.3071.104

@solarhell 谢谢 我看看

J
justyeh#8·9 年前
引用 nickleefly先到你的project目录,再执行

@nickleefly 我是在项目目录里执行的

S
solarhell#10·9 年前

话说之前玩nuxt 感觉路由有bug哦 经常会404. 浏览器里通过nuxt-link点击后能够重定向到。 如果分享url给别人 打开就是404 不知道解决了没

J
justyeh#11·9 年前

谢谢的大家回复! 我的部署方法是正确的,导致错误的原因是线上环境的eslint检查导致的,我去掉eslint就好了!

S
SilenceZeng#12·9 年前

你好,我也碰到这个问题了,但是我的eslint放在if (ctx.dev && ctx.isClient)中啊,而且注释后重新build也还是报相同的错误

参与回复
登录后即可参与回复。登录