chore: bump version to v1.0.6 and deprecate ESM [By: AICoder]

This commit is contained in:
AI Engineer 2026-06-09 20:20:25 +08:00
parent dbbd658fed
commit 81a688d532
19 changed files with 33 additions and 9445 deletions

View File

@ -1,5 +1,15 @@
# Changelog # Changelog
## 1.0.6 (2026-06-09)
### Breaking Changes
- **ESM Deprecation**: Completely removed ESM exports to align with the "zero-boilerplate" project philosophy. The library now relies solely on global injection via `globalThis`.
- **Build Format**: Switched build output to IIFE format only.
### Improvements
- **Integration**: Simplified dependency handling for `@apigo.cc/state` by using global variables.
- **Docs**: Updated README with new versioning and non-ESM usage instructions.
## 1.0.5 (2026-06-05) ## 1.0.5 (2026-06-05)
### Features ### Features

View File

@ -3,14 +3,16 @@
Bootstrap 5.3 自包含集成引擎。 Bootstrap 5.3 自包含集成引擎。
## 0. 快速开始 (Quick Start) ## 0. 快速开始 (Quick Start)
直接在 HTML 中引入(无需打包): 直接在 HTML 中引入(无需打包,完全非 ESM 注入
```html ```html
<script src="https://cdn.jsdelivr.net/npm/@apigo.cc/bootstrap@1.0.5/dist/bootstrap.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/@apigo.cc/bootstrap@1.0.6/dist/bootstrap.min.js"></script>
``` ```
## 1. 运行时接口 ## 1. 运行时接口
- **`bootstrap`**: (Object) 官方原生 Bootstrap 镜像。 - **`bootstrap`**: (Object) 官方原生 Bootstrap 镜像。已挂载至 `globalThis.bootstrap`
- **`Bootstrap`**: (Object) 增强控制接口。 - **`Bootstrap`**: (Object) 增强控制接口。已挂载至 `globalThis.Bootstrap`
*(注意:本库自 v1.0.6 起全面废弃 ESM 导出,改为纯全局注入模式。)*
## 2. API 参考 ## 2. API 参考

9
dist/bootstrap.js vendored
View File

@ -2120,9 +2120,7 @@ url("data:font/woff;base64,d09GRgABAAAAAsBAAAsAAAAHavgAAQAAAAAAAAAAAAAAAAAAAAAAA
console.error("vite-plugin-css-injected-by-js", e); console.error("vite-plugin-css-injected-by-js", e);
} }
})(); })();
(function(global, factory) { (function() {
typeof exports === "object" && typeof module !== "undefined" ? factory(exports, require("@apigo.cc/state")) : typeof define === "function" && define.amd ? define(["exports", "@apigo.cc/state"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global.ApigoBootstrap = {}));
})(this, function(exports2) {
"use strict"; "use strict";
var top = "top"; var top = "top";
var bottom = "bottom"; var bottom = "bottom";
@ -7279,7 +7277,4 @@ url("data:font/woff;base64,d09GRgABAAAAAsBAAAsAAAAHavgAAQAAAAAAAAAAAAAAAAAAAAAAA
globalThis.bootstrap = bootstrap; globalThis.bootstrap = bootstrap;
globalThis.Bootstrap = Bootstrap; globalThis.Bootstrap = Bootstrap;
} }
exports2.Bootstrap = Bootstrap; })();
exports2.default = Bootstrap;
Object.defineProperties(exports2, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
});

File diff suppressed because one or more lines are too long

2128
dist/bootstrap.min.mjs vendored

File diff suppressed because one or more lines are too long

7282
dist/bootstrap.mjs vendored

File diff suppressed because one or more lines are too long

View File

@ -1,9 +1,8 @@
{ {
"name": "@apigo.cc/bootstrap", "name": "@apigo.cc/bootstrap",
"version": "1.0.5", "version": "1.0.6",
"type": "module", "type": "module",
"main": "dist/bootstrap.js", "main": "dist/bootstrap.js",
"module": "dist/bootstrap.js",
"files": [ "files": [
"dist" "dist"
], ],

View File

@ -1,8 +1,9 @@
import * as bootstrap from 'bootstrap' import * as bootstrap from 'bootstrap'
import 'bootstrap/dist/css/bootstrap.min.css' import 'bootstrap/dist/css/bootstrap.min.css'
import 'bootstrap-icons/font/bootstrap-icons.css' import 'bootstrap-icons/font/bootstrap-icons.css'
import { Hash, LocalStorage, RefreshState } from '@apigo.cc/state' import '@apigo.cc/state'
const { Hash, LocalStorage, _unsafeRefreshState } = globalThis
const GlobalStates = { Hash, LocalStorage } const GlobalStates = { Hash, LocalStorage }
/** /**
@ -10,8 +11,8 @@ const GlobalStates = { Hash, LocalStorage }
* 自包含的 Bootstrap 5.3 集成引擎 * 自包含的 Bootstrap 5.3 集成引擎
*/ */
// 导出增强功能对象 // 定义增强功能对象
export const Bootstrap = { const Bootstrap = {
config: (options = {}) => { config: (options = {}) => {
if (typeof document === 'undefined') return if (typeof document === 'undefined') return
const root = document.documentElement const root = document.documentElement
@ -127,5 +128,3 @@ if (typeof globalThis !== 'undefined') {
globalThis.Bootstrap = Bootstrap; globalThis.Bootstrap = Bootstrap;
} }
export default Bootstrap;

View File

@ -22,12 +22,14 @@
</div> </div>
<script type="module"> <script type="module">
import { Bootstrap } from '@apigo.cc/bootstrap'; import '@apigo.cc/state';
import { LocalStorage } from '@apigo.cc/state'; import '@apigo.cc/bootstrap';
const { Bootstrap, LocalStorage } = globalThis;
// 初始化 // 初始化
LocalStorage.darkMode = false; LocalStorage.darkMode = false;
Bootstrap.bindDarkMode(LocalStorage, 'darkMode'); Bootstrap.config({ bindDarkMode: [LocalStorage, 'darkMode'] });
document.getElementById('toggle-btn').onclick = () => { document.getElementById('toggle-btn').onclick = () => {
LocalStorage.darkMode = !LocalStorage.darkMode; LocalStorage.darkMode = !LocalStorage.darkMode;

View File

@ -17,13 +17,13 @@ export default defineConfig({
lib: { lib: {
entry: resolve(__dirname, 'src/index.js'), entry: resolve(__dirname, 'src/index.js'),
name: 'ApigoBootstrap', name: 'ApigoBootstrap',
formats: ['umd', 'es'] formats: ['iife']
}, },
rollupOptions: { rollupOptions: {
external: ['@apigo.cc/state'], external: ['@apigo.cc/state'],
output: [ output: [
{ {
format: 'umd', format: 'iife',
name: 'ApigoBootstrap', name: 'ApigoBootstrap',
entryFileNames: 'bootstrap.js', entryFileNames: 'bootstrap.js',
globals: { globals: {
@ -31,22 +31,13 @@ export default defineConfig({
} }
}, },
{ {
format: 'umd', format: 'iife',
name: 'ApigoBootstrap', name: 'ApigoBootstrap',
entryFileNames: 'bootstrap.min.js', entryFileNames: 'bootstrap.min.js',
globals: { globals: {
'@apigo.cc/state': 'ApigoState' '@apigo.cc/state': 'ApigoState'
}, },
plugins: [terser()] plugins: [terser()]
},
{
format: 'es',
entryFileNames: 'bootstrap.mjs'
},
{
format: 'es',
entryFileNames: 'bootstrap.min.mjs',
plugins: [terser()]
} }
] ]
}, },