【webpack4.0】---base.config.js基本配置(五)
一、创建项目初始化
1、初始化项目
npm init -y2、创建
src(用来存放开发环境的代码)文件夹。config(用来存放webpack的配置项)文件夹3、安装webpack Webpack-cli
二、base.config.js文件
config文件夹下创建base.config.js
1、基本配置
constpath=require("path");
//定义入口文件路径和出口文件路径
constPATH={
app:path.join(__dirname,"../src/main.ts"),
build:path.join(__dirname,"../dist")
}
module.exports={
//入口文件路径
entry:{
app:PATH.app
},
output:{
//导出后文件的名称
filename:process.env.NODE_ENV!='production'?"js/[name].js":"js/[name].[hash:8].js",
//出口文件的路径
path:PATH.build
},
resolve:{
//优先引入的后缀文件
extensions:['.ts','.tsx','.js'],
//配置别名
alias:{}
}
}
三、html-webpack-plugin
1、安装
cnpm install html-webpack-plugin -D
2、使用
const HtmlWebpackPlugin =require("html-webpack-plugin");
module.exports={
plugins:[
newHtmlWebpackPlugin({
template:"../index.html",
filename:"index.html",
title:"vue"
})
]
}
四、loader处理JS文件
1、安装
cnpm install -D @babel/corebabel-loader @babel/preset-env @babel/preset-react @babel/plugin-transform-runtime @babel/polyfill
2、处理JS配置
module:{
rules:[
{
test:/\.js$/,
exclude:path.join(__dirname,"../node_modules"),
loader:"babel-loader"
}
]
},
3、根目录下创建.babelrc文件
{
"presets": [
[
"@babel/preset-env",
{
"targets": {
"browsers": ["last 2 versions"]
}
}
]
],
"plugins": ["@babel/plugin-transform-runtime"]
}
五、loader处理图片和字体图标
1、安装
cnpm install file-loader url-loader -D
2、基本使用
module.exports={
module:{
rules:[
{
test:/\.(png|jpg|gif|svg)$/,
loader: 'file-loader',
options: {
name: '[name].[ext]?[hash]',
publicPath: 'assets',
}
},
{
test: /\.(eot|svg|ttf|woff|woff2)$/,
use: [
{
loader: 'file-loader',
options: {
name: 'fonts/[name].[hash:8].[ext]'
}
}//项目设置打包到dist下的fonts文件夹下
]
},
]
}
}
七、loader处理ts文件
1、安装
cnpm install ts-loader -D
2、基本使用
module.exports={
module:{
rules:[
{
test: /\.tsx?$/,
loader: 'ts-loader',
exclude: /node_modules/,
options: {
appendTsSuffixTo: [/\.vue$/]
}
},
]
},
}
3、ts配置文件 根目录创建tsconfig.json
{
"compilerOptions": {
"experimentalDecorators": true, //开启装饰器@ (修饰器本质就是编译时执行的函数)
"strict": false, //启用所有严格类型检查选项
// 指定生成哪个模块系统代码
"module": "es2015",
"moduleResolution": "node",
"target": "es5",//编译目标平台
"allowJs":true,//允许编译javascript文件
"noImplicitAny": false, // 在表达式和声明上有隐含的'any'类型时报错。
"allowSyntheticDefaultImports": true,
"lib": [
"es5",
"es2015",
"es2016",
"es2017",
"dom"
]
},
"include": ["./**/*.ts"]
}
4、ts识别vue文件 根目录下创建sfc.d.ts
/**
* 告诉 TypeScript *.vue 后缀的文件可以交给 vue 模块来处理
* 而在代码中导入 *.vue 文件的时候,需要写上 .vue 后缀。
* 原因还是因为 TypeScript 默认只识别 *.ts 文件,不识别 *.vue 文件
*/
declaremodule"*.vue"{
importVuefrom'vue'
exportdefaultVue
}
八、baset.config.js完整代码
constpath=require("path");
constHtmlWebpackPlugin =require("html-webpack-plugin");
constVueLoaderPlugin=require('vue-loader/lib/plugin')
//定义入口文件路径和出口文件路径
constPATH={
app:path.join(__dirname,"../src/main.ts"),
build:path.join(__dirname,"../dist")
}
module.exports={
//入口文件路径
entry:{
app:PATH.app
},
output:{
//导出后文件的名称
filename:process.env.NODE_ENV!='production'?"js/[name].js":"js/[name].[hash:8].js",
//出口文件的路径
path:PATH.build
},
resolve:{
//优先引入的后缀文件
extensions:['.ts','.tsx','.js'],
//配置别名
alias:{}
},
module:{
rules:[
{
test:/\.js$/,
exclude:path.join(__dirname,"../node_modules"),
loader:"babel-loader"
},
{
test:/\.vue$/,
exclude:path.join(__dirname,"../node_modules"),
loader:"vue-loader"
},
{
test:/\.(png|jpg|gif|svg)$/,
loader: 'file-loader',
options: {
name: '[name].[ext]?[hash]',
publicPath: 'assets',
}
},
{
test: /\.(eot|svg|ttf|woff|woff2)$/,
use: [
{
loader: 'file-loader',
options: {
name: 'fonts/[name].[hash:8].[ext]'
}
}//项目设置打包到dist下的fonts文件夹下
]
},
{
test: /\.tsx?$/,
loader: 'ts-loader',
exclude: /node_modules/,
options: {
appendTsSuffixTo: [/\.vue$/]
}
},
]
},
plugins:[
newHtmlWebpackPlugin({
template:"./index.html",
filename:"index.html",
title:"vue"
}),
newVueLoaderPlugin()
]
}
【webpack4.0】---base.config.js基本配置(五)的更多相关文章
- webpack配置之webpack.config.js文件配置
webpack配置之webpack.config.js文件配置 webpack.config.js webpack resolve 1.总是手动的输入webpack的输入输出文件路径,是一件非常繁琐 ...
- [转]webpack4.0.1安装问题和webpack.config.js的配置变化
本文转自:https://blog.csdn.net/jiang7701037/article/details/79403637 The CLI moved into a separate packa ...
- 【webpack4.0】---dev.config.js基本配置(六)
一.开发环境配置准备 1.创建dev.config.js文件 用来配置开发环境的代码 2.安装webpack-merge cnpm install webpack-merge -D 用来合并webpa ...
- webpack4.0.1安装问题和webpack.config.js的配置变化
The CLI moved into a separate package: webpack-cli. Please install 'webpack-cli' in addition to webp ...
- vue3.0 vue.config.js 配置实战
今天讲述一下vue-config.js配置,我们前面搭建好脚手架会发现,这个对比2.x版本少了很多东西,没有build的配置,也没有webpack的配置,那么问题来了,我们如何去开发我们的项目呢,比如 ...
- vue.config.js常用配置
使用vue-cli3.0搭建项目比之前更简洁,没有了build和config文件夹. vue-cli3的一些服务配置都迁移到CLI Service里面了,对于一些基础配置和一些扩展配置需要在根目录新建 ...
- vue.config.js基础配置
const path = require('path') const UglifyPlugin = require('uglifyjs-webpack-plugin') module.exports ...
- vue-cli3的vue.config.js文件配置,生成dist文件
//vue.config.jsonconst path = require('path'); // const vConsolePlugin = require('vconsole-webpack-p ...
- Vue-Cli 3.0 + vue.config.js
虽然一直没有亲手搭建过vue项目,但是2.0的时候就开始自学(但并没有实践项目).然后公司最近有个人用3.0做了个项目,公司让我参与进去,我就顺便学习了一把3.0.(美滋滋) 因为电脑的环境还是之前自 ...
随机推荐
- 《Java必须知道的300个问题》读书总结
这本书是在图书馆随便逛的时候找到的书.花了一下午看完了,感觉有用的地方不是很多,大部分都是些概念,并没有太大用途.不过里边有些东西还是可以看一看的,总结如下. Java语言基础 1.表达式3-2.6= ...
- 【LeetCode】714. Best Time to Buy and Sell Stock with Transaction Fee 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 动态规划 日期 题目地址:https://leetc ...
- 1036 - A Refining Company
1036 - A Refining Company PDF (English) Statistics Forum Time Limit: 3 second(s) Memory Limit: 32 ...
- 面试造火箭系列,栽在了cglib和jdk动态代理
"喂,你好,我是XX巴巴公司的技术面试官,请问你是张小帅吗".声音是从电话那头传来的 "是的,你好".小帅暗喜,大厂终于找上我了. "下面我们来进行一 ...
- C++判断月份天数(判断闰年)
题目描述 输入年份和月份,输出这一年的这一月有多少天.需要考虑闰年. 输入格式 无 输出格式 无 输入输出样例 输入 #1 输出 #1 1926 8 31 输入 #2 输出 #2 2000 2 29 ...
- Spring Boot实战二:集成Mybatis
Spring Boot集成Mybatis非常简单,在之前搭建好的项目中加入Mybatis依赖的jar,在配置文件中加入数据库配置即可,如下图所示: 创建对应的Controller.Service.Da ...
- oralce索引中INDEX SKIP SCAN 和 INDEX RANGE SCAN区别
INDEX SKIP SCAN 当表中建立有复合索引的时候,查询时,除复合索引第一列外,别的列作为条件时,且优化器模式为CBO,这个时候查询可能会用到INDEX SKIP SCAN skip scan ...
- Java实习生常规技术面试题每日十题Java基础(三)
目录 1.是否可以从一个static方法内部发出对非static方法的调用? 2.Integer与int的区别? 3.Overload和Override的区别.参数列表相同,返回值不同的方法,是否是重 ...
- 编写Java程序,定义士兵类(Soldiers)并初始化5个士兵对象。
返回本章节 返回作业目录 需求说明: 创建士兵类(Soldiers),定义有一个String类型参数name,代表士兵的姓名,两个int类型变量x和y,分别表示士兵所在的坐标位置,x代表横坐标,y代表 ...
- .NET 云原生架构师训练营(设计原则&&设计模式)--学习笔记
目录 设计原则 设计模式 设计原则 DRY (Don't repeat yourself 不要重复) KISS (Keep it stupid simple 简单到傻子都能看懂) YAGNI (You ...