使用node启动本地项目,搭建本地服务器


现有一个vue项目已经编译得到dist

现在需要搭建一个web服务能够直接访问这个站点

使用 Node.js启动

在dist目录中新建一个app.js文件,内容如下:

const http = require('http')
const fs = require('fs')
const httpPort = 8080

http
  .createServer((req, res) => {
    console.log('req.url:' + req.url)

    // URL重写规则
    function reWrite() {
      var indexFile = './index.html'
      if (req.url.indexOf('/subapp/test01') == 0) {
        indexFile = './subapp/test01/index.html'
      }
      if (req.url.indexOf('/subapp/base-common') == 0) {
        indexFile = './subapp/base-common/index.html'
      }

      fs.readFile(indexFile, 'utf-8', (err, content) => {
        if (err) {
          console.log('We cannot open "index.html" file.')
        }
        res.writeHead(200, {
          'Content-Type': 'text/html; charset=utf-8',
        })

        res.end(content)
      })
    }

    // 是否是目录
    if (req.url[req.url.length - 1] == '/') {
      reWrite()
      return
    }

    //文件是否存在
    fs.access('.' + req.url, function (err) {
      console.log(err)
      if (!err) {
        // 文件存在
        var contentType = '' //文件类型
        var encoding = '' //编码
        var suffix = req.url
          .substr(req.url.lastIndexOf('.'), req.url.length)
          .toLowerCase()
        switch (suffix) {
          case '.css':
            contentType = 'text/css; charset=utf-8'
            encoding = 'utf-8'
            break
          case '.js':
            contentType = 'application/javascript; charset=utf-8'
            encoding = 'utf-8'
            break
          case '.gif':
            contentType = 'image/gif'
            break
          case '.png':
            contentType = 'image/png'
            break
          case '.jpg':
          case '.jpeg':
            contentType = 'image/jpeg'
            break
          case '.html':
            contentType = 'text/html; charset=utf-8'
            encoding = 'utf-8'
            break
          default:
            contentType = ''
            break
        }

        // 读取文件并返回
        fs.readFile('.' + req.url, encoding, (err, content) => {
          if (err) {
            console.log('We cannot open "index.html" file.')
            return
          }
          console.log('.' + req.url)
          res.writeHead(200, {
            'Content-Type': contentType,
          })

          res.end(content)
        })
        return
      } else {
        // 文件不存在
        reWrite()
      }
    })
  })
  .listen(httpPort, () => {
    console.log('Server listening on: http://localhost:%s', httpPort)
  })

进入dist目录,运行

node .\app.js

浏览器请求:127.0.0.1:8080

使用 http-server

使用http-server是最方便的方式,只需要全局安装http-server即可

1)全局安装http-server

cnpm i http-server -g

2)启动服务

 

// 进入到dist文件夹下运行指令
 
http-server // 默认端口
http-server -p 8000 // 指定端口
GarsonZhang www.yesdotnet.com

 

 

// 进入到dist文件夹下运行指令
 
http-server // 默认端口
http-server -p 8000 // 指定端口

 

版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
YES开发框架
上一篇:vue结合qiankun无法使用vue devtools调试子项目
下一篇:vue中异步函数async和await的用法
评论列表

发表评论

评论内容
昵称:
关联文章

使用node启动本地项目本地服务器
RabbitMQ服务器环境方法(Windows)
Elasticsearch使用系列-ES简介和环境
ASP.NET+MVC入门踩坑笔记 (一) 创建项目 项目配置运行 以及简单的Api
阿里云FTP服务器访问报错 200,227错误
使用nuget-server私有Nuget包服务器后,nginx反向代理无法下载包
C# WPF MVVM模式Prism框架从零(经典)
YESWEB开发环境
OrchardCore Headless
Xamarin.Forms 复制本地SQLite数据库
Node.js历史下载
Hardware.Info本地开发运行没问题,放到服务器上抛异常
VSCode隐藏node_modules目录
C# 使用Roslyn编译项目 .csproj
git 放弃本地修改
vs2019 调试服务器代码
如何在 .NET 8 服务中指定端口号启动:最佳实践与动态配置
部署服务器的要求清单
Node.js版本不对引起的 构建失败提示throw new ERR_INVALID_CALLBACK();
(五)React Ant Design Pro + .Net5 WebApi:后端环境-Autofac注入+ 泛型仓储

联系我们
联系电话:15090125178(微信同号)
电子邮箱:garson_zhang@163.com
站长微信二维码
微信二维码