Security News
New Python Packaging Proposal Aims to Solve Phantom Dependency Problem with SBOMs
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.
@kokojs/babel-preset-h5
Advanced tools
babel-preset-h5
是有赞 H5 应用统一的 Babel 配置。
yarn add @kokojs/babel-preset-h5 --dev
PS: 如果项目中安装了 @youzan/koko-preset-h5
,默认就会依赖 @kokojs/babel-preset-h5
,因此可以跳过安装。
在 babel.config.js
中添加对应的 preset:
module.exports = {
presets: ['@kokojs/babel-preset-h5'],
};
如果是 npm 包的话,还需要在 dependencies 里添加以下两个依赖:
{
"dependencies": {
"@babel/runtime": "7.x",
"core-js": "3.x"
}
}
boolean
true
useESModules 用于控制编译后的模块是否为 ESModule,默认为true
,如果需要编译到 commonjs 模块,可以将这项配置设置为false
。
module.exports = {
presets: [
[
'@kokojs/babel-preset-h5',
{
useESModules: false,
},
],
],
};
一般情况下,我们推荐默认输出 ESModule 模块,因为 ESModule 可以触发 Webpack 的 Tree Shaking 和 Scope Hoisting,从而减少代码体积.
如果你的 npm 包需要适配 Webpack 1.x 的旧仓库,则必须输出 commonjs 模块,因为 Webpack 1.x 不支持直接编译 ESModule.
当然,你也可以通过工具来同时输出两个版本,比如使用 rollup 的 output.format 来同时输出 ESModule 和 commonjs.
string | boolean
'usage'
'entry'
、false
等同于 @babel/preset-env 的 useBuiltIns 选项,用于控制 polyfill 的行为。
默认情况下,代码中会添加 core-js@3
的 polyfill 来确保兼容性。
在某些特殊场景下可以将这项配置设置为 false
来禁用 core-js(比如这个包需要在小程序中使用,而小程序不支持 core-js)。
注意:如果禁用了 core-js,请谨慎在代码中使用 ESNext API, 以免出现兼容性问题。
module.exports = {
presets: [
[
'@kokojs/babel-preset-h5',
{
useBuiltIns: false,
},
],
],
};
boolean
false
coreJsPure 用于控制 core-js 的 polyfill 是否污染全局命名空间。
配置该属性后,编译结果的依赖将从 core-js 变更为 @babel/runtime-corejs3。
此选项的优先级高于 useBuiltIns
选项。
{
"dependencies": {
"@babel/runtime-corejs3": "7.x"
}
}
boolean
true
是否开启 babel-preset-env
的 loose
模式。
module.exports = {
presets: [['@kokojs/babel-preset-h5', { loose: false }]],
};
string[]
[]
excludeStyleLibs 用于控制打包时需要排除的组件库样式文件,通过配置这个属性,可以在将组件处理为 externals 依赖时,不打包对应的样式文件
用于 polyfill ESNext 语法和添加 core-js3
用于将 Babel helper 转换为 import 形式,减少代码体积
用于转换 TypeScript 语法
用于组件库按需引入,目前包含以下组件库:
注意:此配置中不包含旧版 captain-ui,如果项目中依然使用了旧版 captain-ui,请保留对 captain-ui 的按需引入配置
用于转换 class 的属性
用于转换 Vue JSX 语法,详见 vuejs/jsx
装饰器语法支持,可用于结合 vue-property-decorator
来使用 TS 编写 Vue 文件
陈嘉涵。
FAQs
Babel preset for h5 projects.
The npm package @kokojs/babel-preset-h5 receives a total of 105 weekly downloads. As such, @kokojs/babel-preset-h5 popularity was classified as not popular.
We found that @kokojs/babel-preset-h5 demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 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.
Security News
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.
Security News
Socket CEO Feross Aboukhadijeh discusses open source security challenges, including zero-day attacks and supply chain risks, on the Cyber Security Council podcast.
Security News
Research
Socket researchers uncover how threat actors weaponize Out-of-Band Application Security Testing (OAST) techniques across the npm, PyPI, and RubyGems ecosystems to exfiltrate sensitive data.