VUE没有 dev-server.js文件了,而是被改成了webpack-dev-conf.js文件,后台数据模拟

本文介绍在新版本Vue的webpack项目中如何配置本地数据请求。主要步骤包括在webpack-dev-conf.js中引入express,加载本地数据文件,并通过路由请求数据。文章详细展示了如何在devServer中使用before方法配置数据接口。

新版本vue的webpack项目里dev-server.js被替换成了webpack-dev-conf.js

所以数据请求data.json的时候直接在webpack-dev-conf.js配置即可

配置方法:

第一步:在const portfinder = require(‘portfinder’)后追加以下代码

const express = require('express')
const app = express()//请求server
var appData = require('../data.json')//加载本地数据文件
var seller = appData.seller//获取对应的本地数据
var goods = appData.goods
var ratings = appData.ratings
var apiRoutes = express.Router()
app.use('/api', apiRoutes)//通过路由请求数据

第二步:在devServer里面追加上before()方法

  devServer: {
    clientLogLevel: 'warning',
    historyApiFallback: {
      rewrites: [
        { from: /.*/, to: path.posix.join(config.dev.assetsPublicPath, 'index.html') },
      ],
    },
    hot: true,
    contentBase: false, // since we use CopyWebpackPlugin.
    compress: true,
    host: HOST || config.dev.host,
    port: PORT || config.dev.port,
    open: config.dev.autoOpenBrowser,
    overlay: config.dev.errorOverlay
      ? { warnings: false, errors: true }
      : false,
    publicPath: config.dev.assetsPublicPath,
    proxy: config.dev.proxyTable,
    quiet: true, // necessary for FriendlyErrorsPlugin
    watchOptions: {
      poll: config.dev.poll,
    },
    // before 方法 start
    before(app) {
      app.get('/api/seller', (req, res) => {
        res.json({
          errno: 0,
          data: seller
        })//接口返回json数据,上面配置的数据seller就赋值给data请求后调用
      }),
      app.get('/api/goods', (req, res) => {
        res.json({
          errno: 0,
          data: goods
        })
      }),
      app.get('/api/ratings', (req, res) => {
        res.json({
          errno: 0,
          data: ratings
        })
      })
    }
    // before 方法 end
  },
before(app) {
      app.get('/api/seller', (req, res) => {
        res.json({
          errno: 0,
          data: seller
        })//接口返回json数据,上面配置的数据seller就赋值给data请求后调用
      }),
      app.get('/api/goods', (req, res) => {
        res.json({
          errno: 0,
          data: goods
        })
      }),
      app.get('/api/ratings', (req, res) => {
        res.json({
          errno: 0,
          data: ratings
        })
      })
    }

 

<think>根据提供的引用内容,用户的问题是在Vue项目启动时报错" Cannot find module webpack-dev-server.js"。需要结合三条引用信息来提供解决方案。 分析引用内容: 1. 引用[1]提到两种方案:使用新命令`webpack serve`或降低webpack-cli版本。 2. 引用[2]展示了一个package.json的配置片段,其中dev脚本使用的是`webpack-dev-server --inline --progress --config build/webpack.dev.conf.js`,并显示项目依赖的webpack-dev-server版本为^2.9.1。 3. 引用[3]建议安装指定版本的webpackwebpack-dev-serverwebpack@3.8.0和webpack-dev-server@2.9.7)。 根据以上信息,可以推断错误通常是由于webpackwebpack-dev-server版本不兼容或配置问题导致。具体解决步骤如下: **解决方案:** 1. **检查依赖版本兼容性(重点)** 确保webpackwebpack-cli和webpack-dev-server的版本兼容。在Vue项目中,常见兼容版本组合: - webpack@3.x + webpack-dev-server@2.x (如引用[3]的方案) - webpack@4.x/5.x + webpack-dev-server@3.x/4.x(此时需使用`webpack serve`命令) 2. **更新启动命令(推荐)** 如果项目使用的是较新的webpack-dev-server(v3+),应将package.json中的dev脚本修改为: ```json "dev": "webpack serve --inline --progress --config build/webpack.dev.conf.js" ``` 注意:新版本中`webpack-dev-server`命令已被`webpack serve`取代(引用[1]的方案1)。 3. **降级依赖版本(兼容旧项目)** 若项目依赖旧版Vue(如vue@2.x),可尝试安装指定版本: ```bash npm install webpack@3.8.0 webpack-dev-server@2.9.7 --save-dev ``` 或通过package.json指定版本后重装依赖: ```json "devDependencies": { "webpack": "3.8.0", "webpack-dev-server": "2.9.7" } ``` 然后执行`npm install`(引用[3]的方案)。 4. **检查配置文件路径** 确认`build/webpack.dev.conf.js`文件是否存在(引用[2]的路径),若文件缺失需重建或从模板项目复制。 5. **清理缓存** 执行`npm cache clean --force`后重新安装依赖(`npm install`)。 **操作流程图解:** ```mermaid graph TD A[启动报错 Cannot find module webpack-dev-server.js] --> B{检查webpack版本} B -->|webpack v4+| C[使用命令 webpack serve] B -->|webpack v3| D[安装 webpack-dev-server@2.x] C --> E[修改package.json的dev脚本] D --> F[指定兼容版本并重装] E --> G[重新启动项目] F --> G G --> H[问题解决] ``` §§相关问题§§ 1. 如何检查项目中webpackwebpack-dev-server的版本? 2. 为什么新版本webpack-dev-server要改用`webpack serve`命令? 3. Vue项目中webpack配置文件的常见结构是怎样的? </think>### Vue项目启动报错" Cannot find module webpack-dev-server.js"的解决方案 根据您提供的引用信息和常见Vue项目实践,该错误通常由**版本兼容性问题**或**配置文件路径错误**导致。以下是具体解决步骤: #### ✅ 解决方案1:更新启动命令(推荐) 1. 修改`package.json`中的dev脚本: ```json "scripts": { // 旧命令(可能报错): // "dev": "webpack-dev-server --config build/webpack.dev.conf.js" // 新命令(兼容webpack4/5): "dev": "webpack serve --config build/webpack.dev.conf.js" } ``` **原因**:webpack-dev-server v3+已弃用原命令,改用`webpack serve`[^1] #### ✅ 解决方案2:版本降级(兼容旧项目) ```bash # 安装指定兼容版本 npm install webpack@4.44.2 webpack-dev-server@3.11.0 webpack-cli@3.3.12 --save-dev # 或使用引用[3]的版本(Vue2项目适用) npm install webpack@3.8.0 webpack-dev-server@2.9.7 --save-dev ``` **注意**:检查`package.json`中Vue版本: - Vue 2.x 建议用webpack 3/4 - Vue 3.x 需用webpack 5 #### ✅ 解决方案3:配置文件修复 1. 确认配置文件路径存在: ```bash ls build/webpack.dev.conf.js # 检查文件是否存在 ``` 2.文件缺失,从官方模板恢复: ```bash cp node_modules/@vue/cli-service/webpack.config.js build/webpack.dev.conf.js ``` #### ✅ 解决方案4:依赖清理与重装 ```bash # 1. 清除缓存 npm cache clean --force # 2. 删除node_modules和lock文件 rm -rf node_modules package-lock.json # 3. 重新安装 npm install ``` #### 💻 操作验证流程: ```mermaid graph TD A[启动报错] --> B{检查webpack版本} B -->|v4+| C[改用webpack serve] B -->|v3| D[降级webpack-dev-server] C --> E[重新启动] D --> E E -->|仍报错| F[检查配置文件路径] F -->|文件存在| G[清理依赖重装] F -->|文件缺失| H[恢复配置文件] ``` ### 常见原因总结 | 原因 | 发生场景 | 解决方式 | |---------------------|--------------------------|-----------------------| | 命令过时 | webpack-dev-server ≥3.0 | 改用`webpack serve` | | 版本冲突 | Vue2项目升级依赖后 | 降级到webpack 3/4 | | 配置文件路径错误 | 自定义构建配置 | 检查路径或恢复默认配置 | | 依赖安装不完整 | 删除了node_modules | 清理缓存后重装 | > **提示**:Vue CLI创建的项目建议使用`vue-cli-service serve`启动(无需直接调用webpack-dev-server)[^2]
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值