如何解决创建vue项目后没有webpack.config.js(vue.config.js)文件

Vue-cli3以后不再自动生成webpack.config.js,而是使用vue.config.js。文章介绍了vue.config.js的作用,手动创建它的方法,以及关键配置项如publicPath、outputDir等,并展示了配置前后打包文件的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

◼️ webpack.config.js文件没有的原因

Vue 项目中 vue.config.js 文件就等同于 webpack 的 webpack.config.js。

vue-cli3 之后创建的时候并不会自动创建 vue.config.js,因为这个是个可选项,所以一般都是需要修改 webpack 的时候才会自己创建一个 vue.config.js。

vue-cil3之后创建项目后的目录结构如下:

├── README.md  					# 说明
|-- dist                       	# 打包后文件夹
├── babel.config.js 			# babel语法编译
├── package-lock.json 
├── public						# 静态文件夹,这类资源将会直接被拷贝,而不会经过 webpack 的处理。
│   ├── favicon.ico
│   └── index.html				#入口页面
└── src						    # 源码目录
    ├── App.vue - 页面
    ├── assets  - 静态目录,这类引用会被 webpack 处理。
    │   └── logo.png
    ├── components 组件
    │   └── HelloWorld.vue
    └── main.js                  # 入口文件,加载公共组件
│—— vue.config.js                # 配置文件,需自行配置 
│—— .gitignore          		 # git忽略上传的文件格式   
│—— babel.config.js   			 # babel语法编译                        
│—— package.json       	         # 项目基本信息 
│—— .env       	                 # 环境变量和模式,需自行配置 
│—— .eslintrc.js    		  	 # ES-lint校验          

开发者一般不需要再去知道 webpack 做了什么,所以没有暴露 webpack 的配置文件,但你依然可以创建 vue.config.js 去修改默认的 webpack。

Vue-cli3+ 和 Vue-cli2 的最大区别:在于内置了很多配置,没有 build 文件夹和 config 的配置。但是在开发中,避免不了的还是需要个性化的配置,这里讲一下 vue.config.js 的配置。

◼️ 手动创建一个 vue.config.js

module.exports = {
  publicPath: './',  // 基本路径
  outputDir: 'dist', // 构建时的输出目录
  assetsDir: 'static', // 放置静态资源的目录
  indexPath: 'index.html', // html 的输出路径
  filenameHashing: true, // 文件名哈希值
  lintOnSave: false, // 是否在保存的时候使用 `eslint-loader` 进行检查。

  // 组件是如何被渲染到页面中的? (ast:抽象语法树;vDom:虚拟DOM)
  // template ---> ast ---> render ---> vDom ---> 真实的Dom ---> 页面
  // runtime-only:将template在打包的时候,就已经编译为render函数
  // runtime-compiler:在运行的时候才去编译template
  runtimeCompiler: false,

  transpileDependencies: [], // babel-loader 默认会跳过 node_modules 依赖。
  productionSourceMap: false, // 是否为生产环境构建生成 source map

  //调整内部的 webpack 配置
  configureWebpack: () => { },

  chainWebpack: () => { },

  // 配置 webpack-dev-server 行为。
  devServer: {
    open: true, // 编译后默认打开浏览器
    host: '0.0.0.0',  // 域名
    port: 8080,  // 端口
    https: false,  // 是否https
    // 显示警告和错误
    overlay: {
      warnings: false,
      errors: true
    },
  }
}

◼️ 没有配置vue.config.js之前,打包后的文件如下

注意:此时直接打开index.html文件可能页面的图片没有显示

◼️ 配置后

注意:此时dist文件底下会创建一个static文件夹(因为vue.config.js中配置了assetsDir属性),用来存放静态文件,如css、js、font、img,

此时,打开index.html文件页面图片可以正常显示

🎋 参考资料:一文详解vue.config.js 

### Vue项目中的`vue.config.js`与`webpack.config.js` #### `vue.config.js`的作用 `vue.config.js` 是专门为 Vue 项目设计的配置文件,旨在简化常见的构建设置过程[^4]。此文件允许开发者轻松调整一些常用的 Webpack 配置项而无需直接编辑复杂的 Webpack 设置。对于大多数基于 Vue CLI 创建的应用程序来说,这已经足够满足日常开发需求。 #### `webpack.config.js`的作用 相比之下, `webpack.config.js` 提供了一个更为全面和灵活的方式来定义整个应用程序的打包行为。它不仅限于 Vue 应用,在任何依赖 Webpack 进行模块捆绑处理的技术栈中都能找到其身影。当涉及到更复杂的需求时——比如引入特定类型的加载器(loaders),或是自定义插件(plugins)来增强编译流程——则可能需要直接操作这个底层配置文件[^1]。 #### 主要区别 - **适用范围**: `vue.config.js`专注于服务 VueCLI 构建工具链下的应用;而`webpack.config.js`可以应用于各种前端框架和技术组合。 - **易用程度**: 使用者可以通过简单的字段赋值完成大部分基础配置任务,使得初学者更容易上手; 而后者由于涉及更多细节控制,则更适合有经验的开发者或团队定制化场景下使用. - **默认存在与否**: 基于Vue CLI3及以上版本初始化的新工程,默认情况下不会生成`vue.config.js`,只有当确实有必要覆盖某些默认行为时才需手动建立该文件[^2]; 反之,几乎所有的Webpack项目都会有一个显式的`webpack.config.js`. ```javascript // vue.config.js 示例 module.exports = { publicPath: './', outputDir: 'dist' } ``` ```javascript // webpack.config.js 示例 const path = require('path'); module.exports = { entry: './src/index.js', output: { filename: '[name].bundle.js', path: path.resolve(__dirname, 'dist') } }; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

儒雅的烤地瓜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值