🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] >[success] # 搭建开发环境 * 从 0 开始搭建 **node环境**,**不使用任何框架** * 使用 **nodemon** 监测文件变化,**自动重启 node** * 使用 **cross-env 设置环境变量** ,兼容 mac linux 和 windows >[success] ## 开始搭建 node 开发环境 首先我们新建一个名为 **blog-1** 的文件夹,然后 `node -v` 确保一下本地是否有安装过 **node** ,**并且 node 版本要大于等于 8.0** 才可以开始继续往下进行。 1. 首先 `npm init -y` 初始化一下项目 2. 然后创建下面这个文件目录结构 ~~~ blog-1 // 项目文件夹 |__ bin // 可执行文件文件夹 | |__ www.js // 项目启动入口文件 |__ app.js // 处理server业务逻辑的方法的文件 |__ package.json // 初始化项目文件 ~~~ **bin/www.js** ~~~ // 1. 引入http模块 const http = require('http') // 2. 端口号默认设置为8000 const PORT = 8000 // 3.引入处理server的方法 const serverHandle = require('../app') // 4. 创建http服务 const server = http.createServer(serverHandle) // 5.监听端口 server.listen(PORT) ~~~ **app.js** ~~~ const serverHandle = (req, res) => { // 设置返回格式 JSON res.setHeader('Content-type', 'application/json') // 模拟返回数据 const resData = { name: '小明', site: '辽宁' } // 返回 res.end(JSON.stringify(resData)) } module.exports = serverHandle ~~~ 然后我们把 `package.json` 中的 `main` 入口文件路径设置为 `bin/www.js` **package.json** ~~~ { "name": "blog-1", "version": "1.0.0", "description": "", "main": "bin/www.js", // 这里改为bin文件夹下的www.js "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC" } ~~~ 然后执行指令 `npm bin/www.js` 运行 >[success] ## 安装 nodemon 与 cross-env 1. 执行下面的指令 **安装nodemon 与 cross-env** ~~~ // 下载插件时后面加 --registry=https://registry.npmmirror.com ,这个是淘宝镜像的地址 npm install nodemon cross-env --save-dev --registry=https://registry.npmmirror.com ~~~ 安装成功后可以看到 **package.json** 中已经有 **nodemon 与 cross-env** 了 ![](https://img.kancloud.cn/e7/99/e7996f3ccfeee9f6e5f8bf5afb9432dd_754x458.png) 2. 在 **package.json** 中配置运行指令 在 **package.json** 中通过 **cross-env 添加 dev 与 production** 环境指令,然后通过 **nodemon** 来自动重启 **./bin/www.js** **package.json** ~~~ { "name": "blog-1", "version": "1.0.0", "description": "", "main": "bin/www.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "dev": "cross-env NODE_ENV=dev nodemon ./bin/www.js" "prd": "cross-env NODE_ENV=production nodemon ./bin/www.js" // 这里线上环境用 pm2,而不是 nodemon }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { "cross-env": "^7.0.3", "nodemon": "^2.0.15" } } ~~~ 3. 通过指令运行项目 配置完了上面的2个插件,就可以不用 **node bin/www.js** 这种方式运行了,可以直接执行 `npm run dev` 运行项目,运行成功后长这样 ![](https://img.kancloud.cn/81/57/8157ce8987c6865723c2d50d2b103cc1_462x211.png) 4. 测试 **nodemon** 是否好用,然后我们可以 **修改一下返回的数据,看看这个插件是否能自动重启 node** ![](https://img.kancloud.cn/90/fd/90fd6d8001222ba62ea22bcab82b2f96_632x391.png) 刷新页面就直接可以看到内容改变了,说明 **nodemon** 已经好用了 ![](https://img.kancloud.cn/df/26/df266be91bcb23360034d5e32c50abb6_592x220.png) 5. 测试 **cross-env** 是否好用,直接在返回的数据中通过 `process.env.NODE_ENV` 把当前环境当做数据返回出去就可以看到当前环境, **我们后续可以通过环境变量做判断来更改连接的数据库等等地方** ![](https://img.kancloud.cn/80/c0/80c0bf1823873e268618244d7fc9d6b9_649x447.png) ![](https://img.kancloud.cn/85/db/85db23512596f622857ff0c25ffdd688_592x202.png)