
Research
Malicious NuGet Packages Typosquat Nethereum to Exfiltrate Wallet Keys
The Socket Threat Research Team uncovered malicious NuGet packages typosquatting the popular Nethereum project to steal wallet keys.
@tarojs/o2h5-taro-blended
Advanced tools
在原生项目的分包中使用一个完整的 Taro NEXT 项目,开发 Taro 互动双端项目需要使用此插件
在 Taro 项目根目录下安装
$ yarn add @tarojs/o2h5-taro-blended --registry=http://registry.m.jd.com
请确保 Taro CLI 已升级至 Taro 3.3.8+ 的最新版本。
建议将版本稳定在3.3.8,因为后续的一些版本中,Taro 可能对 webpack 的配置进行了修改,有可能会影响插件功能的使用
修改项目 config/index.js 中的 plugins 配置为如下
const config = {
...
plugins: [
['@tarojs/o2h5-taro-blended', {
compressPic: true,
uploadToOSS: {
version: '1.0.0',
projectName: 'my-first-project',
access: 'xxx',
secret: 'yyy',
},
moveToWeapp: {
destPath: path.join(__dirname, '../../wxapp/pages/testMini')
}
}]
]
...
}
在 Taro 互动项目中,我们将图片区分成两种类型,雪碧图图片和非雪碧图图片,并统一放置在对应的文件夹下。
sprite 文件夹,如当前页面为 src/pages/index,则需要新建 src/pages/index/sprite 文件夹。sprite 文件夹内不同的二级文件夹的图片来生成对应的雪碧图(拗口)。
举个例子,当前 sprite 文件夹内有『0』『1』『2』三个文件夹:
因此在执行构建后,会生成三张雪碧图,这些雪碧图会生成在 src/img 文件夹中:
生成的雪碧图命名规则为:sprit.{页面路径}.{二级文件夹名称}.png
若发现不符合命名规则的雪碧图,请检查自身雪碧图源文件路径是否符合上述规则.scss 所引用,否则有可能会出现生成的雪碧图缺失部分图片的问题。【这点请千万注意!!!!】 若有特殊情况不能按照上述规则引用,请不要使用雪碧图。若使用的图片为非雪碧图文件,则需要在页面的根目录下新建 nosprite 文件夹,然后将非雪碧图图片置于文件夹中引用即可,如当前页面为 src/pages/index,则需要新建 src/pages/index/nosprite 文件夹,并将非雪碧图放置于该文件夹中。在打包过程中,会自动将这些非雪碧文件进行 CDN 的上传,并对 SCSS 文件中的引用路径进行处理。
在每次进行打包 build 操作的时候,插件会在项目的根目录维护一份 image-cache.js 文件,这份文件作为已上传图片的缓存记录。当下一次再进行 build 操作的时候,我们会读取这份文件,判断当前 build 操作下涉及的图片有没有是在缓存记录中的,然后只压缩和上传不在记录中的文件,并将这些文件名新增在缓存记录中。
而项目的图片我们统一使用了内容哈希来进行命名,因此只有当图片的内容发生了变化,图片的命名才会产生对应的改变,保证了图片缓存记录的可用性。
boolean | number
默认值: false
同 url-loader 的 limit 字段的功能
number
默认值: ``
在 JFS 图片后添加质量控制参数
boolean
默认值: false
该功能在非 MAC 系统上不可用
是否开启 webp 功能,注意只针对 jpg/jpeg 图片,因为 png 已使用 tinyPng 进行压缩,再进行 webp 转换图片体积有可能反而会变大。
boolean
默认值: false
是否开启离线包功能,开启后,所有资源都会变成相对路径来进行引用,且图片会关闭缓存功能,每次都会进行重新压缩。
boolean
默认值:false
是否开启图片压缩功能,仅在生产环境有效。
注意,该配置只适用于开发模式,生产模式已更新为打包时对所有第三方依赖进行编译
为了兼顾开发模式的编译速度和保证编译后的代码不产生报错,才提供了该配置项
string[]
默认值:[]
配置需要额外编译的第三方依赖
boolean
默认值:false
是否开启 hybrid 功能,开启后,所有生成的图片中带有 jdhybrid 关键字的图片都会自动添加上 ?jdhybrid-offline=1 参数。
string
默认值: ''
通过输入需要进行 preload 的图片关键字,当 blended 插件在识别到加载的图片中包含这个关键字时,会收集这些图片的 CDN 地址,并输出文件名为 preloadList.js 的预加载列表文件到项目根目录。当输入的 preloadKeyword 为 false 值时,blended 插件将不会输出预加载列表文件。
string[]
默认值: '[]'
默认的预加载列表
string[]
默认值: '[]'
H5环境下,preload 列表生成时需要过滤的字符串列表
string[]
默认值: '[]'
微信小程序环境下,preload 列表生成时需要过滤的字符串列表
CDN 一级域名配置,目前仅支持非图片的静态资源和图片资源的 CDN 一级域名的配置
string
默认值:m
非图片资源的 CDN 一级域名配置
string
默认值:storage
图片资源的 CDN 一级域名配置
将 Taro 打包后的小程序文件自动移入原生小程序项目下的配置
string
默认值:''
计划移入的原生小程序项目页面的绝对路径
string
默认值:''
这个值用于改变 webpack 输出的 jsonpFunction 的值,避免在同一个原生项目下,不同 Taro 项目的 chunk 加载的冲突
上传 JS、CSS、和图片等静态资源到 OSS 上,上传的目录结构为:{projectName}/{version}/{资源文件}
string
默认值:``
OSS 上传的 access key
string
默认值:``
OSS 上传的 secret key
string
默认值:``
OSS 上传文件夹的第一层级目录名
string
默认值:``
OSS 上传文件夹的第二层级目录名
boolean
默认值:false
这个配置将决定对静态资源进行引用时,是使用对外的域名还是对内的域名;若开启,则使用域名 storage.360buyimg.com,若不开启,则使用 storage.jd.com
boolean
默认值:true
是否同时上传打包后的 JS 和 CSS,默认开启,这个配置仅针对 H5 模式生效。
FAQs
> 在原生项目的分包中使用一个完整的 Taro NEXT 项目,开发 Taro 互动双端项目需要使用此插件
The npm package @tarojs/o2h5-taro-blended receives a total of 1 weekly downloads. As such, @tarojs/o2h5-taro-blended popularity was classified as not popular.
We found that @tarojs/o2h5-taro-blended demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
The Socket Threat Research Team uncovered malicious NuGet packages typosquatting the popular Nethereum project to steal wallet keys.

Product
A single platform for static analysis, secrets detection, container scanning, and CVE checks—built on trusted open source tools, ready to run out of the box.

Product
Socket is launching experimental protection for the Hugging Face ecosystem, scanning for malware and malicious payload injections inside model files to prevent silent AI supply chain attacks.