一、创建项目初始化

1、初始化项目npm init -y

2、创建 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基本配置(五)的更多相关文章

  1. webpack配置之webpack.config.js文件配置

    webpack配置之webpack.config.js文件配置 webpack.config.js webpack resolve  1.总是手动的输入webpack的输入输出文件路径,是一件非常繁琐 ...

  2. [转]webpack4.0.1安装问题和webpack.config.js的配置变化

    本文转自:https://blog.csdn.net/jiang7701037/article/details/79403637 The CLI moved into a separate packa ...

  3. 【webpack4.0】---dev.config.js基本配置(六)

    一.开发环境配置准备 1.创建dev.config.js文件 用来配置开发环境的代码 2.安装webpack-merge cnpm install webpack-merge -D 用来合并webpa ...

  4. webpack4.0.1安装问题和webpack.config.js的配置变化

    The CLI moved into a separate package: webpack-cli. Please install 'webpack-cli' in addition to webp ...

  5. vue3.0 vue.config.js 配置实战

    今天讲述一下vue-config.js配置,我们前面搭建好脚手架会发现,这个对比2.x版本少了很多东西,没有build的配置,也没有webpack的配置,那么问题来了,我们如何去开发我们的项目呢,比如 ...

  6. vue.config.js常用配置

    使用vue-cli3.0搭建项目比之前更简洁,没有了build和config文件夹. vue-cli3的一些服务配置都迁移到CLI Service里面了,对于一些基础配置和一些扩展配置需要在根目录新建 ...

  7. vue.config.js基础配置

    const path = require('path') const UglifyPlugin = require('uglifyjs-webpack-plugin') module.exports ...

  8. vue-cli3的vue.config.js文件配置,生成dist文件

    //vue.config.jsonconst path = require('path'); // const vConsolePlugin = require('vconsole-webpack-p ...

  9. Vue-Cli 3.0 + vue.config.js

    虽然一直没有亲手搭建过vue项目,但是2.0的时候就开始自学(但并没有实践项目).然后公司最近有个人用3.0做了个项目,公司让我参与进去,我就顺便学习了一把3.0.(美滋滋) 因为电脑的环境还是之前自 ...

随机推荐

  1. 【LeetCode】1111. Maximum Nesting Depth of Two Valid Parentheses Strings 有效括号的嵌套深度

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目讲解 划分规则讲解 返回结果讲解 解题方法 代码 日期 题目地址:ht ...

  2. 一图搞懂Web应用的单点登录

    单点登录即Signle Sign On,简称SSO.其解决的是用户在多个站点之间跳转时需要频繁登录的问题,比如用户登录了天猫,就应该无需再使用账号登录淘宝,它们之间是可以相互信任的,应该自动同步登录状 ...

  3. C++多线程并发---异步编程

    线程同步主要是为了解决对共享数据的竞争访问问题,所以线程同步主要是对共享数据的访问同步化(按照既定的先后次序,一个访问需要阻塞等待前一个访问完成后才能开始).这篇文章谈到的异步编程主要是针对任务或线程 ...

  4. CS5218替代AG6310方案|设计DP转HDMI转换方案|替代AG6310方案

    AG6310是一款实现显示端DP口转HDMI数据转换器.AG6310是一款单芯片解决方案,通过DP端口连接器传输视频和音频流,其DP1.2支持可配置的1.2和4通道,分别为1.62Gbps.2.7Gb ...

  5. Pytest_测试用例的执行方式(2)

    在pytest框架中,编写测试用例有如下约束: 所有的测试用例文件名都需要满足test_*.py格式或*_test.py格式. 在测试用例文件中,测试类以Test开头,并且不能带有__init__方法 ...

  6. Flask_路由(二)

    一.路由规则设置说明 flask框架使用route()装饰器配置路由. from flask import Flask app = Flask(__name__) @app.route("/ ...

  7. PowerShell 【按任意键继续】

    1 function Pause(){ 2 [System.Console]::Write('按任意键继续...') 3 [void][System.Console]::ReadKey(1) 4 } ...

  8. RabbitMQ 消息中间件 的下载与安装【window10】

    1.前言 弄了好久,才终于把 rabbitmq装好 ,本来是很简单的,但是,安装有个要求就是路径不能有中文字符, 虽然可以安装,但是无法运行,需要修改路径名为非中文字符后重装rabbitmq才可以运行 ...

  9. Mysql设计遵循规则

    为什么要优化系统的吞吐量瓶颈往往出现在数据库的访问速度上随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢数据是存放在磁盘上的,读写速度无法和内存相比 如何优化设计数据库时:数据库表. ...

  10. 离线下载第三方Python包

    1.进入Python第三方包下载地(https://pypi.org/)搜索自己需要的包 2.下载需要的包的版本 3.将.whl格式的文件更改为.zip文件,并且解压 4.将解压的2个文件放到Pyth ...