2022-10-27 ·
教程大全 ·
292425
好家伙,
1.打包处理js文件中的高级语法
webpack只能打包处理一部分高级的JavaScript 语法。对于那些webpack无法处理的高级js 语法,需要借
助于 babel-loader 进行打包处理。
例如 webpack无法处理下面的JavaScript代码:
// 1.定义了名为 info 的装饰器
function info(target) {
// 2.为目标添加静态属性 info
target.info = 'Person info'
}
// 3.为Person 类应用 info 装饰器
@info
class Person {}
//4.打印 Person 的静态属性 info
console.log(Person.info)
此处运用到了一个名为装饰器的高级语法,webpack无法对其进行打包,
(基于干不过就叫人的思想)这里我们借助于 babel-loader 进行打包处理。
(babel是一个插件 => babel是webpack的插件 => 所以babel是插件的插件)
2.babel-loader的安装和配置
2.1 安装 babel-loader 相关的包
运行如下的命令安装对应的依赖包:
npm i babel-loader@8.2.2 @babel/core@7.14.6@babel/plugin-proposal-decorators@7.14.5-D
在webpack.config.js的 module -> rules 数组中,添加 loader 规则如下:
// 注意:必须使用 exclude 指定排除项;因为 node_modules 目录下的第三方包不需要被打包
{ test: /\.jss/, use: 'babel-loader', exclude: /node_modules/ }
2.2配置 babel-loader
在项目根目录下,创建名为babel.config.js的配置文件(与webpack有个webpack.config.js配置文件一样 ),定义Babel的配置项如下:
module.exports={
// 声明 babel 可用的插件
// 将来 ,webpack 在调用 babel-loader的时候,会优先加载plugins插件来使用
plugins: [['@babel/plugin-proposal-decorators',{ legacy: true }]]
}
插件的的可选配置项,
可以直接上官网文档去找Babel 中文文档 · 下一代 JavaScript 编译器 (docschina.org)
webpack的配置是较难的,一般平时就直接用第三方的默认配置了,
这里是浅显的了解一下webpack的原理
That's all
第五十六篇:webpack的loader(四) -打包js中的高级语法的相关教程结束。
PyInstaller图标不显示主因是--icon路径错误或.ico格式不合规(需多尺寸Windows原生图标);应使用绝对路径、--icon置于脚本名前,并配合sys._MEIPASS在运行时加载图标。 用PyInstaller打包Python脚本为exe时,图标不显示? 图标没生效,大概率是--...
本文介绍一种轻量、临时的解决方案,让位于Poetry项目外部的Python脚本(如scripts/script.py)能直接导入Poetry项目内(如modules-project/modules/)的模块及其依赖,无需重新初始化Poetry项目、发布包或修改系统路径。 本文介绍一种轻量、临时的解决...
Python3.12新增PEP695泛型语法(如classConfig[T]:)、type别名泛型(typeTree[T]=...)、TypeVardefault参数及Annotated元数据机制,需解释器3.12+与Pyright≥1.1.350/mypy≥1.10.0双向兼容支持。 Python...
真正可恢复的checkpoint至少需包含model.state_dict()、optimizer.state_dict()、当前epoch、最新loss,以及可选的lr_scheduler.state_dict()和随机数种子;漏掉optimizer.state_dict()会导致优化器状态丢失而...
Flask应用打包前必须确认的三个路径:app.py须置于根目录以避免ModuleNotFoundError;requirements.txt须与Dockerfile同目录或显式指定路径;import路径须适配容器内结构,确保config.py等依赖文件被正确COPY且不在被忽略目录中。 Flask...
match语句通过字节码级优化和单次结构探测替代链式if判断,减少重复取值与类型检查,在Python3.11+中实现更紧凑分支、更高JIT友好性及实际运行提速。 match语句本身不直接“提升运行时效率”,但它能显著减少冗余判断、避免重复解包、降低嵌套if深度,从而让代码更接近数据结构本质——这带来...
Pyecharts的Grid和Page仅为布局容器,不支持图表间事件联动;Grid用于同页多图对齐与坐标共享,Page用于垂直分页展示,真联动需原生JS或Streamlit等框架。 Pyecharts的Grid和Page都不能真正实现“联动”(比如点击柱状图某柱子,折线图高亮对应时间点),它们只是布...
Python3.12中distutils已被彻底移除,必须将fromdistutils.coreimportsetup替换为fromsetuptoolsimportsetup,并升级setuptools≥65.5.0,禁用废弃参数,继承类改为setuptools路径,CI改用pipwheel。 di...