Framework7 包结构
包
Framework7 核心库包包含以下导出
framework7/
    components/
        accordion/
            accordion-ios.less
            accordion-md.less
            accordion-rtl.css
            accordion-vars.less
            accordion.css
            accordion.d.ts
            accordion.js
            accordion.less
        ...
    less/
    modules/
    framework7-bundle-rtl.css
    framework7-bundle-rtl.min.css
    framework7-bundle.css
    framework7-bundle.esm.js
    framework7-bundle.js
    framework7-bundle.less
    framework7-bundle.min.css
    framework7-bundle.min.js
    framework7-lite-bundle.esm.js
    framework7-lite.esm.js
    framework7-rtl.css
    framework7-rtl.min.css
    framework7-types.d.ts
    framework7.css
    framework7.d.ts
    framework7.esm.js
    framework7.js
    framework7.less
    framework7.min.css
    framework7.min.js精简版
Framework7 "Lite" 版本(文件名包含 -lite 后缀)不包含 Framework7 组件(路由组件)功能、仪表盘、饼图和面积图组件的核心 API。它设计用于 Framework7-Vue/React/Svelte 库,在这些库中您可以使用 Vue/React/Svelte 组件来代替。
Lite 版本仅适用于 ESM 导入。
样式
主要的 Framework7 样式位于根软件包文件夹中
- framework7.css- 包含最小的(核心)Framework7 样式和最小的必要组件集。
- framework7-rtl.css- 与上述相同,但适用于 RTL 布局。
- framework7-bundle.css- 包含 Framework7 核心版本的样式,并包含所有组件的样式。
- framework7-bundle-rtl.css- 与上述相同,但适用于 RTL 布局。
脚本 (UMD)
根文件夹中有所谓的 UMD JavaScript 文件,旨在直接在浏览器中使用(例如,使用 <script src="...">)
- framework7.js- 包含最小的(核心)Framework7 版本和最小的必要组件集。
- framework7-bundle.js- 包含完整的 Framework7 及其所有组件。
Lite 版本不提供 UMD 格式。
组件
所有组件都位于 components/ 文件夹中,需要与核心(非捆绑)版本一起使用。您可以在延迟模块部分了解更多关于如何使用它们的信息。
ES 模块
此功能目前可在 Vite、Webpack 和 Rollup 等打包器中使用
Framework7 也可以作为 ES-next 模块导入
import Framework7 from 'framework7';Framework7 具有模块化结构,并且默认情况下,它只导出带有核心组件的核心 Framework7。
如果您需要额外的组件,则必须另外包含它们
// Import core framework
import Framework7 from 'framework7';
// Import additional components
import Searchbar from 'framework7/components/searchbar/';
import Calendar from 'framework7/components/calendar/';
import Popup from 'framework7/components/popup/';
// Import components styles
import 'framework7/components/searchbar/css';
import 'framework7/components/calendar/css';
import 'framework7/components/popup/css';
// Install F7 Components using .use() method on class:
Framework7.use([Searchbar, Calendar, Popup]);
// Init app
var app = new Framework7({/*...*/});这种模块化结构提供了最佳的摇树优化结果和包大小优化。
除了 default 导出之外,它还为 Dom7、getDevice、createStore、utils 和 getSupport 帮助器提供了命名导出
import Framework7, { getDevice } from 'framework7';
var app = new Framework7({/*...*/});
var device = getDevice();
还提供“Lite”模块
import Framework7 from 'framework7/lite';
ES 模块捆绑包
如果您需要包含所有组件的 Framework7,我们可以包含另一个安装了所有组件的脚本捆绑包
// Import framework with all components
import Framework7 from 'framework7/bundle';
// Init app
var app = new Framework7({/*...*/});还提供“Lite”捆绑模块
import Framework7 from 'framework7/lite-bundle';
ES 模块导出
Framework Core 包是一个纯 ESM 包,它在 package.json 中具有以下 exports 字段
{
  "exports": {
    ".": "./framework7.esm.js",
    "./core": "./framework7.esm.js",
    "./bundle": "./framework7-bundle.esm.js",
    "./lite": "./framework7-lite.esm.js",
    "./lite/bundle": "./framework7-lite-bundle.esm.js",
    "./lite-bundle": "./framework7-lite-bundle.esm.js",
    "./less": "./framework7.less",
    "./css": "./framework7.css",
    "./css/rtl": "./framework7-rtl.css",
    "./css/bundle": "./framework7-bundle.css",
    "./css/bundle/rtl": "./framework7-bundle-rtl.css",
    "./types": "./framework7-types.d.ts",
    "./components/dialog": "./components/dialog/dialog.js",
    "./components/dialog/less": "./components/dialog/dialog.less",
    "./components/dialog/css": "./components/dialog/dialog.css",
    "./components/dialog/css/rtl": "./components/dialog/dialog-rtl.css",
    ...
  }
}

