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.
babel-preset-vnmf
Advanced tools
Vnmf 项目的 Babel 配置位于根目录的 babel.config.js
文件中,里面默认添加了一个 preset:babel-preset-vnmf
,它会根据项目的技术栈添加一些常用的 presets
和 plugins
。
module.exports = {
presets: [
['vnmf', {/** 配置项 */}]
]
}
开发者可以修改 babel.config.js
,修改 babel-preset-vnmf
的配置项,或添加自己想要的 presets
和 plugins
。
babel-preset-vnmf
会根据当前项目的技术栈,选择性地使用以下的 presets
和 plugins
。
@babel/preset-env
@babel/preset-typescript
(TypeScript 环境)@babel/plugin-transform-runtime
@babel/plugin-proposal-decorators
@babel/plugin-proposal-class-properties
babel-plugin-dynamic-import-node
(小程序环境)@babel/preset-react
react-refresh/babel
@vue/babel-preset-jsx
@vue/babel-plugin-jsx
以下将详细介绍 babel-preset-vnmf
的配置项。
:::note 只在使用 React 时生效。 :::
默认值:'automatic'
@babel/preset-react
的 runtime 配置项。
:::note 只在使用 React 时生效。 :::
默认值:true
是否引入 react-refresh/babel
来支持使用 fast-refresh。
:::note 只在使用 Vue/Vue3 时生效。 :::
默认值:true
类型:true
| false
| object
是否使用 @vue/babel-preset-jsx
(Vue)或 @vue/babel-plugin-jsx
(Vue3)来支持使用 jsx
。
当传入一个 object
时,等同于设置为 true
,且该 object
将会作为 @vue/babel-preset-jsx
(Vue)或 @vue/babel-plugin-jsx
(Vue3)的参数。
默认值:
{
ios: '9',
android: '5'
}
@babel/preset-env
的 targets 配置项。
默认值:false
有效值:'entry'
| 'usage'
| false
:::info
优点:全局彻底 polyfill,就算 node_modules
中的依赖存在不兼容的代码,也能成功运行。
缺点:可能会引入冗余代码、影响全局变量。 :::
当传入 'entry'
时,会把 @babel/preset-env
的 useBuiltIns 选项设为 'entry'
、corejs 选项设为 '3'
。
开发者需要在入口文件 app.js
中引入 core-js
:
import "core-js"
Babel 会根据 targets,引入对应的 core-js
依赖。例如上述代码会被编译为:
import "core-js/modules/es.string.pad-start";
import "core-js/modules/es.string.pad-end";
// ...
当然,因为这时 Vnmf 把
corejs
设置为'3'
,所以可以使用core-js@3
手动按需引入的能力,详情请见文档。
:::info 优点:按需引入、不会影响全局变量。
缺点:默认不会处理 node_modules
中的依赖,需要手动配置 babel-loader
。
:::
当传入 'usage'
时,会把 @babel/plugin-transform-runtime
的 corejs 选项设为 3
。
注意:传入
'usage'
时, Vnmf 没有使用@babel/preset-env
的useBuiltIns: 'usage'
而是使用了@babel/plugin-transform-runtime
的corejs: 3
。原因在于:一、两者同时设置时会产生冲突。二、后者相对于前者,不会影响全局变量。
当传入 false
时,会把 @babel/preset-env
的 useBuiltIns 选项设为 false
,此时不会引入 core-js
。
默认值:false
同时是 @babel/preset-env
、@babel/plugin-proposal-class-properties
的 loose
配置项。
默认值:false
@babel/preset-env
的 debug 配置项。
默认值:false
@babel/preset-env
的 modules 配置项。
@babel/preset-env
的 spec 配置项。
@babel/preset-env
的 configPath 配置项。
@babel/preset-env
的 include 配置项。
@babel/preset-env
的 exclude 配置项。
@babel/preset-env
的 shippedProposals 配置项。
@babel/preset-env
的 forceAllTransforms 配置项。
@babel/plugin-proposal-decorators
的 decoratorsBeforeExport 配置项。
默认值:true
@babel/plugin-proposal-decorators
的 lagacy 配置项。
默认值:开发者根目录 node_modules
中的 @babel/plugin-transform-runtime
的路径。
类型:string
@babel/plugin-transform-runtime
的 absoluteRuntime 配置项。
默认值:开发者根目录 node_modules
中的 @babel/plugin-transform-runtime
的版本号。
类型:string
@babel/plugin-transform-runtime
的 version 配置项。
FAQs
Vnmf babel preset
The npm package babel-preset-vnmf receives a total of 0 weekly downloads. As such, babel-preset-vnmf popularity was classified as not popular.
We found that babel-preset-vnmf demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer 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.