zoukankan      html  css  js  c++  java
  • 配置webpack打包ts代码

    使用webpack打包ts代码


    具体步骤如下:
    1.新一个项目文件夹
    2.执行npm init -y生成package.json
    3.执行npm i -D webpack webpack-cli typescript ts-loader
    4.编写webpack文件,新建一个webpack.config.js

    webpack.config.js代码如下:

    //引入一个包
    const path = require('path');
    			
    //webpack中的所有配置信息都应该写在module.exports中
    module.exports = {
    			
    	//指定入口文件
    	entry:"./src/index.ts",
    	//指定打包文件所在的目录
    	output:{
    		//指定打包文件的目录
    		path:path.resolve(__dirname,'dist'),
    		//打包后文件的文件
    		filename:"bundle.js"
    	},
    	//指定webpack打包时要使用的模块
    	module:{
    		//指定要加载的规则
    		rules:[
    			{
    				//test 指定的是规则生效的文件
    				test:/.ts$/,
    				//要使用的loader
    				use:'ts-loader',
    				//要排除的文件
    				exclude:/node-modeules/
    						
    			}
    					
    		]
    	}
    }
    

    5.在根目录新建一个tsconfig.json配置文件

    {
    	"compilerOptions":{
    		"module":"ES2015",
    		"target":"ES2015",
    		"strict":true
    	}
    }
    

    6.在package.json文件中添加一行

    "scripts":{
    	"build":"webpack"
    }
    

    7.执行npm run build打包,出现dist/burdle.js就成功了

    以上是最简单的一个webpack基础流程。

    下面我们来自动生成html文件

    8.执行npm i -D html-webpack-plugin插件(下载成功后,package.json就有依赖了)

    9.在webpack.config.js文件中导入

    //引入html插件
    const HTMLWebpackPlugin = require('html-webpack-plugin');
    //找到module同级别后面添加配置Webpack插件代码
    plugins:[
    	new HTMLWebpackPlugin(
    		//title:"这是一个自定义标题title" (可不写)
    		//template:"文件模板路径"	(可不写)
    	)
    ]
    

    10.执行npm run build重新编译,dist文件夹下面就自动生成html文件了。

    11.安装内置服务器,自动运行更新到浏览器中。执行npm i -D webpack-dev-server。在package.json文件中添加一行

    "scripts":{
    	"start":"webpack server --open chrome.exe"
    }
    

    12.执行npm i -D clean-webpack-plugin插件。这个插件是用来清理dist文件的。在webpack.config.js文件中导入

    //引入clean插件
    const { CleanWebpackPlugin } = require('clean-webpack-plugin');
    		
    //找到module同级别后面添加配置Webpack插件代码
    plugins:[
    	new CleanWebpackPlugin(),
    	new HTMLWebpackPlugin(
    		//title:"这是一个自定义标题title" (可不写)
    		template:"文件模板路径"	(可不写)
    	),
    ]
    

    然后在执行 npm run build,你看不出什么效果,其实这个命令执行的时候是先清空dist下面的文件,然后再重新创建的,重新编译的,这样做是为了避免有旧文件。

    13.最后一个问题:在webpack的默认情况下,webpack是不知道TS可以作为模块使用的,所以我们需要特意配置一下。在webpack.config.js文件中,找到plugins同层级别后添加:

    //用来设置引用模块
    resolve:{
    	extensions:['.ts','.js'] //就是以.ts和.js为后缀名文件
    }
    

    14.兼容性问题(兼容低版本浏览器)

    babel的作用:
    1.可以把新语法转行成就语法
    2.新的技术,在旧的浏览器不支持,通过babel就可以让就浏览器支持新技术了。

    执行npm i -D @babel/core @babel/preset-env babel-loader core-js。在webpack.config.js中找到module下面的use修改代码如下:

    
    use:[
    	//配置babel
    	{
    		//指定加载器
    		loader:"babel-loader",
    		//设置babel
    		options:{
    			//设置预定义的环境
    			presets:[
    				[
    					//指定环境的插件
    					"@babel/preset-env",
    					//配置信息
    					{
    						//要兼容的目标浏览器
    						targets:{
    							"chrome":"88",										
    						},
    						
    						//指定corejs的版本
    						"corejs":"3",
    						//使用corejs的方式 "usage":表示按需加载
    						"useBuiltIns":"usage"
    					}
    				
    				]
    			]
    		}
    		
    	},
    	'ts-loader'
    ]
    
    //告诉webpack不使用箭头函数
    //在webpack.config.js中,找到output下面添加
    
    environment:{
    	arrowFunction:false
    }
    
    

    参考资料:
    1、https://blog.csdn.net/weixin_43754395/article/details/114066244,这一篇比较详细具体,逻辑上都能说的通。
    2、https://www.jianshu.com/p/2bc50b542969,这一篇不是很详细,对照着看第一篇用的,参考价值不大。

  • 相关阅读:
    JQuery学习
    前端Web APIs 二
    前端Web APIS
    Swift 函数式数据结构
    JAVA 四大域对象总结
    Java 访问 C++ 方法:JavaCPP
    写Java也得了解CPU–CPU缓存
    Servlet使用注解标注监听器(Listener)
    Java使用Fork/Join框架来并行执行任务
    Linux学习之让进程在后台可靠运行的方法详解
  • 原文地址:https://www.cnblogs.com/zhangzl419/p/15176754.html
Copyright © 2011-2022 走看看