Nuxt.js project deployment issues
The configuration in
package.json is as follows
"scripts": {
"dev": "nuxt",
"build": "cross-env NODE_ENV=production nuxt build && nuxt start",
"start": "nuxt start",
"server": "cross-env NODE_ENV=production nodemon server --exec babel-node --presets es2015,stage-2",
"online": "babel server -d dist --presets es2015,stage-2",
"serve": "cross-env NODE_ENV=production pm2 start dist/index.js",
"generate": "nuxt generate",
"lint": "eslint --ext .js,.vue --ignore-path .gitignore .",
"precommit": "npm run lint"
}
if the packaged .nuxt folder has only these files and no static resources such as pictures, you will not be able to run at all. Which folders need to be uploaded to the server when deploying here
npm install
these are just intermediate files.
it is officially recommended to use two commands: next build;next start
to a portal to see if they can help you: next.js, nuxt.js and other server rendering frameworks built projects are deployed to the server
.
all files, including node_modules
, must also be uploaded to the server
because they are server-side rendering, so these components are all required
you can try to run with pm2 on this machine first
the deployment was successful only yesterday, and the specific principle is not understood
Hello, landlord! The following excerpt is from eggjs application deployment
the JavaScript language itself does not need to be compiled, and the build process is mainly a download dependency. However, this step is necessary if you use TypeScript
or Babel
to support ES6
features. General installation dependencies specify NODE_ENV=production
or npm install-- production
to install only dependencies
dependencies. Unknown problems may also be encountered after installation because the modules in devDependencies
are too large and will not be used in a production environment.
$ cd baseDir
$ npm install --production
$ tar -zcvf ../release.tgz .
after the build is completed, it is packaged into a tgz file, and then unzipped and started during deployment.
< hr >
if it is helpful, please click to adopt it, thank you ~
static resources such as images are launched after the
nuxt project is launched in the .nuxt / dist/ directory. You can use services such as nginx to forward the request to the corresponding node port.
the files you need to launch are only .nuxt and build folders. Of course, to run the node service, you also need node_modules (this can also be packaged together, if it is too large. You can install dependencies on the server
because our company's server resources are limited, we cannot build files on the server. We select the local build, and upload the packaged files to the server. The server pulls the project code (git), and decompresses the uploaded build+.nuxt package at the same time, and then starts the node service with pm2, so that we can access the
locally executed code
.
"scripts": {
"dev": "backpack dev",
"build": "nuxt build && backpack build"
}
//shell
rm -rf .nuxt/
rm -rf build/
rm -rf node_modules/
cnpm install
npm run build
rm -rf new.tar.gz
tar -zcvf new.tar.gz .nuxt/ build/
scp tar
Server executes script
cd
git pull
cnpm install
rm -rf .nuxt/ build/
tar -zxvf new.tar.gz
pm2 -o /dev/null start build/main.js --name
if your server supports online compilation, package
you can set the npm command directly in package.json
"start:test": "cross-env _ENV=test pm2 start build/main.js --node-args='--harmony' --name 'project_name'",
"start:production": "cross-env _ENV=production pm2 start build/main.js --node-args='--harmony' --name 'project_name'"
the server can execute different scripts according to different environments