对webpack从零配置
一.新建配置文件,文件名一般为webpack.config.js;
二.配置文件目录,一般为根目录,一般会放在./build文件夹下
三.配置文件格式一般为module.exports={},
四.结构如下:
module.exports = {
entry: "...",
output: {... },
module: {
rules: [
{...},
{...},
],
},
resolve: {
modules: [
"node_modules",
path.resolve(__dirname, "app")
],
extensions: [".js", ".json", ".jsx", ".css"],
alias: {...},
},
performance: {... },
devtool: "source-map",
context: __dirname,
target: "web",
externals: ["react", /^@angular\//],
stats: "errors-only",
devServer: { ... },
plugins: [ ... ],
}
1.入口文件和上下文
module.exports = {
// 上下文是查找入口文件的基本目录,是一个绝对值,所以要用到path.resolve
// 如果不设,默认为当前目录
// 与命令行中的webpack --context是一样的
// 最后入口文件是 context+entry
//可以写成./today/wang[前面➕./],不能写成/today/wang,如果../表示在当前目录再往上一层
// context 除了这里的入口文件用到,loader,。plugin都会要用到这个值
context:path.resolve(__dirname,'./today/wang'),
// entry可以为字符串|对象|数组三种形式
// 如果底层有封装那么后面的js可以省略
// 字符串
entry:“./app/entry”,
// 数组
entry:["./homne.js","./about.js",]
//对象
entry:{
home:‘./home.js’,
about:'./about.js',
contact:'./contact.js'
}
}2.输出module.exports={
output:{//最后生成的打包文件所在的目录,是一个绝对值,如果不指定,表示当前目录
//如果文件夹不存在,会自动创建
path:path.resolve(__dirname,'../dist/'),
//filename中可以使用[name],[id],[hash],[chunkhash][query]五种变量
filename: ‘zhou.js'//单个文件
filename:‘[name]wang.js’;//多个文件
filename:‘[id]wang.js’
filename: ‘[name].[hash].bundle.js’
filename:'[chunkhash].yes.js'//20位hash值
hashDigestLength:8//指定最后chunkhash和、hash生成字符串的长度,默认是20个字符
}
}
3。模块 modules
module:{
rules:[
{
test:/\.vue$/,
loader:'vue-loader'
options:vueLoaderConfig
}
]
}
4.resolve
resolve: {
extensions: ['.js', '.vue', '.json'], //扩展名为.js,.vue,.json的可以忽略,如 import App from './app',先在当前目录中找app.js,没有再找app.vue,没找到,再找.json,如果还没找到,报错
alias: {
'vue$': 'vue/dist/vue.esm.js', // 别名,这是一个正则的写法,表示以vue结尾的,如import Vue from 'vue' 表示 import Vue from 'vue/dist/vue.esm.js'
'@': path.resolve('src'),// 这也是为懒人服务的,import HelloWorld from '@/components/HelloWorld'这里的@其实就是代表src这个目录
'#': path.resolve('src/ui/components') import Table from '#/table'
}
},
5.开发服务器
evServer: {
//progress只在命令行用,不在配置文件中配
contentBase: path.resolve(__dirname, "../dist/"), //网站的根目录为 根目录/dist,如果没有指定,使用process.cwd()函数取当前工作目录,工作目录>npm run dev
port: 8080, //端口改为9000
open:true, // 自动打开浏览器
//index:'front.html', // 与HtmlWebpackPlugin中配置filename一样
inline:true, // 默认为true, 意思是,在打包时会注入一段代码到最后的js文件中,用来监视页面的改动而自动刷新页面,当为false时,网页自动刷新的模式是iframe,也就是将模板页放在一个frame中
hot:false,
publicPath: '/static456/',它与output.publicPath的值应该是一样的,值为上面contentBase目录的子目录,是放js,css,图片等资源的文件夹,记得打包时,将图片等拷贝或打包到该文件下
compress:true //压缩
}
对webpack从零配置的更多相关文章
- webpack + vuejs 基本配置(一)
开始之前 本文包含以下技术,文中尽量给与详细的描述,并且附上参考链接,读者可以深入学习: 1.webpack2.Vue.js3.npm4.nodejs —- 这个就不给连接了,因为上面的连接都是在你实 ...
- Parcel.js + Vue 2.x 极速零配置打包体验
继 Browserify.Webpack 之后,又一款打包工具 Parcel 横空出世 Parcel.js 的官网有这样的自我介绍 “极速零配置Web应用打包工具” 简单接触了一下,单从效率上来说,确 ...
- 使用parcel打造一个零配置的react工作流
parcel是一个前端打包工具.因其推崇的零配置理念,和webpack形成了鲜明对比.对于我这样一个被后端IDE智能提示宠坏的猿,自然是对webpack提不起爱.平时也都是使用CLI默认配置好webp ...
- webpack 4.0配置
webpack一般是本地安装,一般安装webpack webpack-cli,一般是开发依赖上线的时候不需要打包通常npm install webpack webpack-cli -D安装 安装的时 ...
- Parcel + Vue 2.x 极速零配置打包体验
继 Browserify.Webpack 之后,又一款打包工具 Parcel 横空出世 Parcel.js 的官网有这样的自我介绍 “极速零配置Web应用打包工具” 简单接触了一下,单从效率上来说,确 ...
- Parcel极速零配置Web应用打包工具
当听到极速零配置打包,我不经兴奋起来,零配置!!!想起在webpack打包的配置,这个零配置着实让我好奇不已,迅速学习一波. Parcel(parcel 英[ˈpɑ:sl] 美[ˈpɑ:rsl])有以 ...
- H5新人福音~零配置搭建现代化的前端工程
X-BUILD一套基于Webpack(v4.21.0)快速搭建H5场景开发环境的脚手架,只需要几分钟的时间就可以运行起来.X-BUILD是针对H5开发的一套自动化构建工具,致力于提升开发效率,减小开发 ...
- webpack的基本配置(初识)
webpack能根据模块的依赖关系递归地构建一个依赖关系图,当中包含了应用程序所需要的所有模块,最后打包成一个或多个bundle.它有四个核心概念entry.output .loader.plugin ...
- 菜鸟学Struts2——零配置(Convention )
又是周末,继续Struts2的学习,之前学习了,Struts的原理,Actions以及Results,今天对对Struts的Convention Plugin进行学习,如下图: Struts Conv ...
随机推荐
- Linux_NetworkManager_RHEL7
目录 目录 前言 网卡命名 RHEL7 的网卡命名规则 在RHEL7中修改回RHEL6的网卡命名规则方法 RHEL7的Network管理工具nmcli指令 nmcli指令 设置主机名 临时修改Host ...
- Jmeter之if控制器
在使用中,一些操作可以执行,需要满足一些特定的条件,这个时候就可以使用if控制器去控制. 一.界面显示 二.配置说明 1.名称:标识,建议设置为判断的功能 2.注释:说明 3.条件:是指需要满足那种条 ...
- MySQL 常用报错注入原理分析
简介 这段时间学习SQL盲注中的报错注入,发现语句就是那么两句,但是一直不知道报错原因,所以看着别人的帖子学习一番,小本本记下来 (1) count() , rand() , group by 1.报 ...
- SELECT-OPTIONS对象
1. SELECT-OPTIONS基本语法及定义 SELECT-OPTIONS通常用于参照一数据库字为建立数据输入域,其定义对象命名长度不能超过8位,其产生的屏幕对象最大输入长度为18位,语法如下: ...
- MySQL单列索引和组合索引的创建及区别介绍
MySQL单列索引是我们使用MySQL数据库中经常会见到的,MySQL单列索引和组合索引的区别可能有很多人还不是十分的了解,下面就为您分析两者的主要区别,供您参考学习. 为了形象地对比两者,再建一个表 ...
- 【python+selenium自动化】设置Chrome启动参数
起因:直接用selenium的webdriver启动chrome,会弹出“Chrome正在受到自动软件的控制”,并且窗口较小,是因为chrome没有加载任何配置 解决:点进selenium的Chrom ...
- 【MM系列】SAP MM模块-货物移动对标准价的影响
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP MM模块-货物移动对标准价的 ...
- SQL语句中drop、truncate和delete的用法
一.SQL中的语法 1.drop table dbo.Sys_Test 2.truncate table dbo.Sys_Test 3.delete f ...
- java8 stream取出 最大值/最小值
注:转载请注明出处!!! 这里直接用取出多个对象中某个值 最大/最小 来进行举例 直接看代码 /** * 时间测试类 */ class TimeTest { private Date time; pu ...
- 安装开发环境vs2017+sql2016+tfs2017
安装开发环境vs2017+sql2016+tfs2017 编写人:左丘文 2019-7-16 近一年了,一直没空着手写点什么,跟大家交待下吧,去年一次机会,其实也不完全是去年,因此离开了我工作15年的 ...