vue-cli3+ts+webpack实现多入口多出口功能

yizhihongxing

“vue-cli3+ts+webpack实现多入口多出口功能”需要做如下几个步骤:

  1. 初始化项目

使用vue-cli3初始化一个vue项目,这个项目作为主项目,用于引入其他模块。

vue create my-project
  1. 添加模块

在主项目中,通过npm或yarn安装其他需要接入主项目的模块,例如我们需要接入一个blog模块,通过以下命令安装:

npm install blog --save
  1. 配置webpack

在vue-cli3中,webpack配置被封装到了vue.config.js文件中。

首先需要设置webpack入口entry和出口output

module.exports = {
  pages: {
    index: {
      entry: 'src/main.ts',
      template: 'public/index.html',
      filename: 'index.html'
    },
    blog: {
      entry: 'src/modules/blog/main.ts',
      template: 'public/blog.html',
      filename: 'blog.html'
    }
  }
}

其中pages对象中的key作为html文件名,value为入口文件名。我们通过配置多个entry和出口来实现多入口多出口的项目。

需要注意的是,每个入口文件的tsconfig.json中需要添加以下配置:

{
  "compilerOptions": {
    "target": "esnext",
    "module": "esnext",
    "moduleResolution": "node",
    "esModuleInterop": true,
  }
}
  1. 编写模块代码

src/modules/blog/目录下新建一个入口文件main.ts,可以在其中引入其他需要使用的模块,例如blog.ts

import Blog from './blog'

new Blog()

Blog类的定义写在blog.ts中:

export default class Blog {
  constructor() {
    console.log('blog module loaded!')
  }
}
  1. 运行项目

在主项目根目录下运行 npm run serve,打开http://localhost:8080可以看到主页,打开http://localhost:8080/blog.html可以看到博客页。

示例1:

假设我们有一个user模块,这个模块也需要接入主项目中进行使用。

  • 首先,在主项目中安装模块: npm install user --save
  • 然后,在vue.config.js中添加入口和出口:
  pages: {
    index: 'src/main.ts',
    blog: 'src/modules/blog/main.ts',
    user: 'src/modules/user/main.ts' // 添加user入口
  },
  • src/modules/user/目录下新建一个入口文件main.ts,可以在其中引入其他需要使用的模块,例如user.ts
import User from './user'

new User()
  • user.ts中编写User类代码:
export default class User {
  constructor() {
    console.log('user module loaded!')
  }
}

示例2:

假设我们需要使用typescript编写代码。

  • vue.config.js中,我们需要修改webpack配置,设置esModuleInteroptrue,这个选项在tsconfig.json中也需要设置。
module.exports = {
  pages: {
    index: 'src/main.ts',
    blog: 'src/modules/blog/main.ts'
  },

  configureWebpack: {
    module: {
      rules: [
        {
          test: /\.tsx?$/,
          loader: 'ts-loader',
          options: { appendTsSuffixTo: [/\.vue$/] }
        }
      ]
    },

    resolve: {
      extensions: ['.ts', '.tsx', '.js', '.json'],
    },
  },

  // 修改默认的入口文件名
  chainWebpack: config => {
    config.entry('app').clear().add('./src/main.ts')
  },

  // 这里添加vue-cli支持的全局变量
  pluginOptions: {
    'style-resources-loader': {
      preProcessor: 'less',
      patterns: [
        path.resolve(__dirname, './src/assets/less/variable.less'),
      ]
    }
  },

  css: {
    loaderOptions: {
      less: {
        javascriptEnabled: true
      }
    }
  }
}
  • 然后需要在每个模块的tsconfig.json中添加以下配置
{
  "compilerOptions": {
    "target": "esnext",
    "module": "esnext",
    "moduleResolution": "node",
    "esModuleInterop": true,
    "sourceMap": true,
    "allowSyntheticDefaultImports": true,
    "resolveJsonModule": true,
    "experimentalDecorators": true,
    "isolatedModules": true,
    "noImplicitAny": true,
    "strictNullChecks": true,
    "strictFunctionTypes": true,
    "strictPropertyInitialization": true,
    "noImplicitThis": true,
    "alwaysStrict": true,
    "noImplicitReturns": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noImplicitDeclareDependencies": true,
    "baseUrl": "./",
    "paths": {
      "@/*": ["src/*"]
    }
  },
  "include": ["src/**/*.ts"],
  "exclude": ["node_modules", "dist"]
}
  • 在代码中,需要使用TypeScript语法编写所有模块的代码。

完整代码请参考: https://github.com/frankfangfei/vue-cli3-multi-pages

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue-cli3+ts+webpack实现多入口多出口功能 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • kali中john的使用方法

    Kali中John的使用方法的完整攻略 John the Ripper是一款常用的密码破解工具,可以在Kali Linux中使用。本文将介绍在Kali中使用John的完整略,包括两个示例说明。 步骤一:安装John 在使用John之前,需要先安装John。可以使用以下命令在Kali Linux中安装John: sudo apt-get update sudo…

    other 2023年5月9日
    00
  • 使用IDEA搭建Hadoop开发环境的操作步骤(Window10为例)

    下面是使用IDEA搭建Hadoop开发环境的操作步骤: 准备工作 安装JDK,推荐使用JDK8以上版本,可以从Oracle官网下载。 安装IDEA,可以从官网下载安装包进行安装。 下载Hadoop,可以从官网下载最新版本的Hadoop。 操作步骤 解压Hadoop安装包,将解压后的文件夹放在合适的目录下,比如:C:\Hadoop。 在系统环境变量中增加以下三…

    other 2023年6月27日
    00
  • WinRAR在DOS命令行下压缩/解压缩的使用方法

    下面是WinRAR在DOS命令行下压缩/解压缩的使用方法的完整攻略。 一、WinRAR简介 WinRAR是一款常用的文件压缩解压缩软件,支持多种压缩格式,包括RAR、ZIP、7-Zip、CAB、ARJ、ISO等。在Windows界面下,我们可以通过WinRAR的图形用户界面来进行压缩解压缩操作,但是WinRAR也支持在DOS命令行下进行文件压缩解压缩操作。 …

    other 2023年6月26日
    00
  • 墨迹天气app怎么自定义频道?

    墨迹天气提供了非常丰富的天气信息,并且支持用户自定义频道。下面就让我来详细讲解“墨迹天气app怎么自定义频道”的完整攻略: 1. 打开墨迹天气app 首先,在手机上打开墨迹天气app。如果你还没有安装,你可以前往应用商店进行下载安装。 2. 进入“我的”界面 在墨迹天气app首页,点击右下角“我的”按钮,进入“我的”界面。 3. 进入“自定义频道”界面 在“…

    other 2023年6月25日
    00
  • Office2016 RTM正式版的版本号定为16.0.4229.1024

    以下是关于“RTM 正式版的版本号定为 16.0.4229.1024”的完整攻略,包含了两个示例说明。 版本号 根据消息,RTM 正式版的版本号定为 16.0.4229.1024。这意味着在正式发布时,该版本的软件将具有该特定的版本号。 示例说明 示例一:RTM 正式版的版本号 根据消息,RTM 正式版的版本号定为 16.0.4229.1024。这意味着在正…

    other 2023年8月2日
    00
  • java自定义封装StringUtils常用工具类

    下面是详细讲解“java自定义封装StringUtils常用工具类”的完整攻略。 简介 StringUtils是Apache Commons Lang库中的一个常用工具类,提供了大量对字符串的操作方法。然而,有时我们需要扩展该类的功能或自定义一些字符串操作方法。因此,可以自定义封装StringUtils常用工具类。 实现步骤 新建StringUtilsExt…

    other 2023年6月25日
    00
  • Win10 22H2(19045.1862)即将正式发布,现已可以手动下载升级

    Win10 22H2(19045.1862)升级攻略 Win10 22H2(19045.1862)即将正式发布,现已可以手动下载升级。本攻略将详细介绍如何进行升级,并提供两个示例说明。 步骤一:备份重要数据 在进行任何操作之前,建议先备份重要数据。这样可以确保在升级过程中不会丢失任何重要文件。 步骤二:检查系统要求 在升级之前,确保你的计算机符合Win10 …

    other 2023年8月3日
    00
  • vivo X Fold2开发者模式在哪 vivo X Fold2进入开发者模式的方法

    以下是“vivo X Fold2开发者模式在哪 vivo X Fold2进入开发者模式的方法”的完整攻略: 一、vivo X Fold2开发者模式在哪 要在vivo X Fold2中找到开发者模式,可以按照以下步骤进行操作: 打开设置应用。可以通过点击主屏幕上的“设置”图标或从通知栏中下拉通知栏,然后点击“设置”来打开设置应用。 向下滑动屏幕,找到“关于手机…

    other 2023年6月26日
    00
合作推广
合作推广
分享本页
返回顶部