《五》Webpack 中处理 JavaScript 模块的 Loader 之 vue-loader、ts-loader、eslint-loader

vue-loader

安装的是 Vue2 和 vue-loader15

  1. 安装 Vue:npm install vue
  2. 新建 src/js/App.vue 文件并编写代码。
    // src/js/App.vue
    <template>
    	<div>{{title}}</div>
    </template>
    
    <script>
      export default {
        data() {
          return {
            title: 'Hello Vue'
          }
        }
      }
    </script>
    
    <style scoped></style>
    
  3. 新建 src/index.js 文件并编写代码。
    // src/index.js
    import Vue from 'vue'
    import App from './js/App.vue'
    
    new Vue({
      render: h => h(App)
    }).$mount('#app')
    
  4. 运行 npx webpack 命令进行打包,会发现报错了,Webpack 不认识 Vue 文件。
    请添加图片描述

使用 vue-loader

vue-loader:对 Vue 文件进行处理。

  1. 安装 vue-loadernpm install vue-loader --save-dev
  2. 由于还需要对 Vue 文件中的 template 模板进行编译,因此还需要安装 vue-template-compilernpm install vue-template-compiler --save-dev
  3. webpack.config.js 配置文件中进行配置。
    // webpack.config.js
    // VueLoaderPlugin 插件在安装 vue-loader 时会被默认安装
    const VueLoaderPlugin = require('vue-loader/lib/plugin')
    
    module.exports = {
      module: {
        rules: [
          {
            test: /\.vue$/,
            use: 'vue-loader',
          }
        ]
      },
      plugins: [
      	// 使用 vue-loader 必须同时使用 VueLoaderPlugin 插件,才能对 Vue 文件正确处理。它的作用是将 Vue 单文件组件中的各个部分进行解析和转换,将 template 模板编译为渲染函数,将 script 脚本使用 Babel 进行转译,将 style 样式转换为适当的模块
        new VueLoaderPlugin()
      ]
    }
    
  4. 此时,运行 npx webpack 命令进行打包,会发现打包成功了。

ts-loader

  1. 新建 src/index.ts 并编写代码。
    // src/index.ts
    var title:string = 'Hello World'
    
    function getInfo (info: string) {
        console.log(info)
    }
    getInfo(title)
    
  2. 修改 Webpack 打包的入口文件。
    // webpack.config.js
    module.exports = {
        entry: './src/index.ts',
    }
    
  3. 运行 npx webpack 命令进行打包,会发现报错了,Webpack 不认识 TypeScript 语法。
    在这里插入图片描述

使用 ts-loader

ts-loader :会自动去使用 TypeScript Compiler 对匹配到的 TypeScript 进行编译转换。

  1. 安装 ts-loadernpm install ts-loader --save-dev
  2. webpack.config.js 配置文件中进行配置。
    // webpack.config.js
    module.exports = {
        entry: './src/index.ts',
        module: {
            rules: [
                {
                    test: /\.ts$/,
                    use: 'ts-loader',
                }
            ]
        }
    }
    
  3. 当想要对项目中所有的 TS 文件都进行统一的编译时,必须要有一个 TS 的配置文件 tsconfig.json 。因此,运行 tsc --init 命令来生成 tsconfig.json
  4. 此时,运行 npx webpack 命令进行打包,会发现打包成功了。

eslint-loader

  1. 新建 src/index.js 文件并编写代码。
    const title = "Hello World";
    

使用 eslint-loader

eslint-loader:对代码进行 ESLint 校验。

  1. 安装 ESLint:npm install eslint --save-dev
  2. 生成 ESLint 配置文件:npx eslint --init
  3. 安装 eslint-loadernpm install eslint-loader --save-dev
  4. webpack.config.js 配置文件中进行配置。
    module.exports = {
      module: {
        rules: [
          {
            test: /\.js$/,
            // 如果使用了多个 loader,是从后往前执行的。因此,如果对 JS  文件还使用了其他 loader 进行处理,可以将 eslint-loader 放到最后,使其在处理代码之前先对代码进行 ESLint 校验
            use: ['eslint-loader'], 
          }
        ]
      },
    }
    
  5. 运行 npx webpack 命令进行打包,会发现 ESLint 对代码进行了校验。
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值