用途:修复 UI5 linter 能检测但无法自动修复的 CSP 合规问题。核心规则 Csp-unsafe-inline-script(Use of unsafe inline script,级别 Warning)。
主要能力:把带内联 JavaScript 且无 src 属性的 script 标签外置为外部 .js 文件,用 script src="filename.js" 替换,脚本内容完整保留,绝不删除(删除属功能回归)。带 src 的 script、非 JS MIME 类型(如 text/xmldata)不触发。文件命名应描述用途,如 appConfig.js、init.js。
常见改法:UI5 初始化用 data-sap-ui-on-init="module:path/to/init" 替代内联 attachInit;配置数据外置为 .js 模块或运行时加载的 JSON;内联事件处理器(onclick、onerror、onload)改为 addEventListener 与 DOMContentLoaded;QUnit 测试内联引导改用 Test Starter 的 runTest.js;服务端模板动态值改用 meta 标签或 data-* 属性后由外部脚本读取。
使用方式:依据 linter 输出定位内联脚本,按 UI5 初始化、配置、事件处理器、测试样板分类,创建外部文件、更新 HTML 引用并回归测试。
限制:CSP 合规为警告而非错误,部分环境可能不要求;data-sap-ui-on-init 接受 module: 路径格式的 AMD 模块;第三方库与 JSONP 回调可能需额外 CSP 配置,须查其文档。安装命令与具体价格、平台信息暂未提供。