Webpack-搭建本地服务器 | 青训营笔记


theme: condensed-night-purple

highlight: a11y-dark

这是我参与「第四届青训营 」笔记创作活动的的第11天

搭建本地服务器

webpack提供了一个可选的本地开发服务器,这个本地服务器基于node.js搭建,内部使用express框架,可以实现我们想要的让浏览器自动刷新显示我们修改后的结果。

不过它是一个单独的模块,在webpack中使用之前需要先安装它--对webpack提供开发时服务 1. 安装:npm install --save-dev webpack-dev-server@2.9.1

devserver也是作为webpack中的一个选项,选项本身可以设置如下属性: contentBase:为哪一个文件夹提供本地服务,默认是根文件夹,我们这里要填写./dist port:端口号 默认8080 inline:页面实时刷新 Boolean historyApiFallback:在SPA页面中,依赖HTML5的history模式

  1. 配置:webpack.config.js文件配置修改如下: js module.exports = { devServer : { contentBase : './dist', inline : true } }

使用:webpack-dev-server 报错:在终端直接输入该命令,会报错,因为终端去全局找,而我们是在局部安装的 解决:node_modules/.bin/webpack-dev-server (可以 ./node_modules/.bin/webpack-dev-server报错,要换成反斜杠\(没试

  1. 命令映射:我们可以再配置另外一个scripts: js // package.json { "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build": "webpack", "dev" : "webpack-dev-server --open" // --open参数表示直接打开浏览器 }, }

分离配置文件

  • 有些配置只在开发时使用,有些只在发布时使用,所以要分离配置文件

开发时和发布/编译时的配置进行分离

base.config.js: 公共配置

dev.config.js: 开发配置

prod.config.js: 发布配置

为了将配置文件合并一起,安装:npm install webpack-merge@4.1.5 --save-dev merge:合并

const {merge} = require("webpack-merge") 现在要这样2021-1-16 引入合并方法,查看源码后看到导出中含有merge,所以引入方式是 {merge} = require() 新版本要调用merge 方法 webpackMerge.merge()

```js // prod.config.js const UglifyjsWebpackPlugin = require('uglifyjs-webpack-plugin') const WebpackMerge = require('webpack-merge') // 导入base.config const baseConfig = require('./base.config')

module.exports = WebpackMerge(baseConfig,{ plugins : [ new UglifyjsWebpackPlugin(), ], }) // 因为高版本webpack-merge导出的是mrege函数,且不是默认导出所以必须使用{merge}接收!

// dev.config.js const WebpackMerge = require('webpack-merge') // 导入base.config const baseConfig = require('./base.config')

module.exports = WebpackMerge(baseConfig,{ devServer : { contentBase : './dist', inline : true } }) ```

此时运行npm run build

报错:No configuration file found and no output filename configured via CLI option. A configuration file could be named 'webpack.config.js' in the current directory. 找不到配置文件webpack.config.js

解决: 在package,json的scripts添加--config ./build/prod.config.js 手动指定配置文件,而不是默认的 js { "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build": "webpack --config ./build/prod.config.js", "dev": "webpack-dev-server --open --config ./build/prod.config.js" }, }

打包后发现东西被打包在build文件夹下 因为之前我们在base.config.js文件中写了 js output : { path : path.resolve(__dirname,'dist'), // path 通常是绝对路径 // __dirname:指的是当前文件所在 文件夹 的绝对路径 filename : 'bundle.js', // publicPath : 'dist/' // 以后涉及到url,都会自动在前面拼接dist/ }, 所以在build文件夹下创建了dist文件夹,修改:path : path.resolve(__dirname,'../dist'),

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值