IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> webpack加载使用typescript -> 正文阅读

[JavaScript知识库]webpack加载使用typescript

webpack加载使用typescript

1. 安装相关包

npm i -g typescript // 全局安装typescript
npm i -D ts-loader // 安装加载ts对应的loader

2. 在webpack.config.js中配置

module: {
  rules: [
    {
      test: /\.(ts)$/,
      exclude: /node_modules/,
      use: {
        loader: 'ts-loader'
      }
    }
  }

3. tsconfig.json配置文件

  • 3.1 常用选项(主要掌握常用的就行,有很多选项我们是用不到的)

    {
      "compilerOptions": {
        "target": "ES5", // 用于指定编译之后的版本
        "module": "ES6", // 用来指定要使用的模板标准
        "sourceMap": true, // 是否生成sourceMap,默认false  这个文件里保存的,是转换后代码的位置,和对应的转换前的位置。有了它,出错的时候,通过断点工具可以直接显示原始代码,而不是转换后的代码。
        "removeComments": true, // 编译完成后删除注释
        "noEmitOnError": true, // 当有错误时不生成文件,默认false
        "outDir": "./dist", // 用来指定编译后文件的存放位置
        "strict": true // 所有的严格检查的总开关,默认false
      }
    }
    
  • 3.2 选项详解

    // 全局安装typescript后,可在命令行中用tsc命令生成tsconfig.json文件
    tsc --init
    
    {
      "compilerOptions": {
        /* 基本选项 */
        // "incremental": true,                         /* 启用增量编译 */
        "target": "es5" /* 指定ECMAScript目标版本: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', 'ES2021', or 'ESNEXT'. */,
        "module": "commonjs" /* 指定要使用的模块标准: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */,
        // "lib": [],                                   /* 指定要包含在编译中的库文件 */
        // "allowJs": true,                             /* 指定是否允许编译JS文件,默认false,即不编译JS文件 */
        // "checkJs": true,                             /* 指定是否检查和报告JS文件中的错误,默认false */
        // "jsx": "preserve",                           /* 指定jsx代码用于的开发环境: 'preserve', 'react-native', 'react', 'react-jsx' or 'react-jsxdev'. */
        // "declaration": true,                         /* 生成相应的“.d.ts”声明文件,但是declaration和allowJs不能同时设为true*/
        // "declarationMap": true,                      /* 为每个相应的“.d.ts”文件生成源映射 */
        // "sourceMap": true,                           /* 指定编译时是否生成.map文件 */
        // "outFile": "./",                             /* 指定输出文件合并为一个文件,只有设置module的值为amd和system模块时才支持这个配置 */
        // "outDir": "./",                              /* 指定输出文件夹 */
        // "rootDir": "./",                             /* 指定编译文件的根目录,编译器会在根目录查找入口文件 */
        // "composite": true,                           /* 是否编译构建引用项目 */
        // "tsBuildInfoFile": "./",                     /* 指定文件以存储增量编译信息 */
        // "removeComments": true,                      /* 指定是否将编译后的文件注释删掉,设为true的话即删除注释,默认为false */
        // "noEmit": true,                              /* 不生成编译文件 */
        // "importHelpers": true,                       /* 指定是否引入tslib里的复制工具函数,默认为false */
        // "downlevelIteration": true,                  /* 当target为"ES5"或"ES3"时,为"for-of" "spread"和"destructuring"中的迭代器提供完全支持 */
        // "isolatedModules": true,                     /* 指定是否将每个文件作为单独的模块,默认为true,他不可以和declaration同时设定 */
    
        /* 严格类型检查选项 */
        "strict": true /* 指定是否启动所有类型检查,默认为false */,
        // "noImplicitAny": true,                       /* 如果我们没有为一些值设置明确类型,编译器会默认认为这个值为any类型,如果设为true,则没有设置明确的类型会报错,默认值为false */
        // "strictNullChecks": true,                    /* 启用严格的空检查 */
        // "strictFunctionTypes": true,                 /* 启用对函数类型的严格检查 */
        // "strictBindCallApply": true,                 /* 对bind、call和apply绑定的方法的参数的检测是严格检测 */
        // "strictPropertyInitialization": true,        /* 启用类中属性初始化的严格检查,需要同时开启strictNullChecks,默认为false */
        // "noImplicitThis": true,                      /* 当this表达式的值为any类型的时候,生成一个错误 */
        // "alwaysStrict": true,                        /* 指定始终以严格模式检查每个模块,并且在编译之后的JS文件中加入"use strict"字符串 */
    
        /* 附加检查 */
        // "noUnusedLocals": true,                      /* 用于检查是否有定义了但是没有使用变量,默认值为false */
        // "noUnusedParameters": true,                  /* 用于检测是否在函数中没有使用的参数 */
        // "noImplicitReturns": true,                   /* 用于检查函数是否有返回值,设为true后,如果函数没有返回值则会提示,默认为false */
        // "noFallthroughCasesInSwitch": true,          /* 用于检查switch中是否有case没有使用break跳出switch,默认为false */
        // "noUncheckedIndexedAccess": true,            /* 在索引签名结果中包含“未定义” */
        // "noImplicitOverride": true,                  /* 确保用“override”修饰符标记派生类中的重写成员 */
        // "noPropertyAccessFromIndexSignature": true,  /* 需要索引签名中未声明的属性才能使用元素访问 */
    
        /* 模块分辨率选项 */
        // "moduleResolution": "node",                  /* 用于选择模块解析策略,有"node"和"classic"两种类型 */
        // "baseUrl": "./",                             /* 用于设置解析非相对模块名称的基本目录,相对模块不会受到baseUrl的影响 */
        // "paths": {},                                 /* 用于设置模块名到基于baseUrl的路径映射 */
        // "rootDirs": [],                              /* 指定一个路径列表,在构建时编译器会将这个路径中的内容都放到一个文件夹中 */
        // "typeRoots": [],                             /* 指定声明文件或文件夹的路径列表,如果指定了此项,则只有在这里列出的声明文件才会被加载 */
        // "types": [],                                 /* 指定需要包含的模块,只有在这里列出的模块的声明文件才会被加载 */
        // "allowSyntheticDefaultImports": true,        /* 指定允许从没有默认导出的模块中默认导入 */
        "esModuleInterop": true /* 通过导入内容创建命名空间,实现CommonJS和ES模块之间的互操作性 */,
        // "preserveSymlinks": true,                    /* 不把符号链接解析为真实路径 */
        // "allowUmdGlobalAccess": true,                /* 允许从模块访问UMD globals */
    
        /* 源映射选项 */
        // "sourceRoot": "",                            /* 指定调试器应该定位TypeScript文件的位置,而不是源位置 */
        // "mapRoot": "",                               /* 指定调试器应该定位映射文件的位置,而不是生成的位置 */
        // "inlineSourceMap": true,                     /* 发射具有源贴图的单个文件,而不是具有单独的文件 */
        // "inlineSources": true,                       /* 在单个文件中沿源映射发射源;需要设置'--inlineSourceMap'或'--sourceMap' */
    
        /* 实验选项 */
        // "experimentalDecorators": true,              /* 启用对ES7装饰器的实验性支持 */
        // "emitDecoratorMetadata": true,               /* 启用对为装饰器发射类型元数据的实验性支持 */
    
        /* 高级选项 */
        "skipLibCheck": true /* 跳过声明文件的类型检查 */,
        "forceConsistentCasingInFileNames": true /* 不允许对同一文件的大小写不一致的引用 */
      }
    }
    
    

    更多详情访问:https://www.tslang.cn/docs/handbook/tsconfig-json.html

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-22 14:04:22  更:2021-07-22 14:05:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年2日历 -2025/2/5 20:18:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码