ejs - 是否可以通过 storybook.js 的 preview-head.html 文件访问 webpack 配置属性?
问题描述
我正在尝试将 storybook.js 添加到我的 react 项目中,并且我需要将一个先决条件脚本添加到每个故事书页面中,以便呈现一些自定义组件。
脚本的 URL 需要在 webpack 配置中动态自动生成。
这个故事书文档的故事渲染部分提到了一个preview-head.html
脚本标签可以通过它注入到最终的索引 HTML 文件中。
我想知道它是否支持像下面这样的 EJS 语法,以便我访问 HtmlWebpackPlugin 的配置选项值。
<script src="<%= htmlWebpackPlugin.options.foobar %>"></script>
解决方案
作为一种解决方法,我在preview.js
文件中编写了一个装饰器,以故意将<script />
标签插入到带有动态生成src
字段的故事书 iframe 中。
const loadAssets = () => {
const scriptElement = document.createElement('script');
// scriptElement.src = /* dynamically generated from dependencies */;
document.querySelector('head').appendChild(scriptElement);
};
const AssetLoader = props => {
React.useEffect(() => loadAssets(), []);
return <>{props.children}</>;
};
const assetLoaderDecorator = storyFn => (
<AssetLoader>{storyFn()}</AssetLoader>
);
addDecorator(assetLoaderDecorator);
这有点笨拙,但目前可以达到目的。
推荐阅读
- guidewire - 你可以在guidewire中使用java脚本吗?
- angular - 变化检测不适用于角度元素 + NgRx
- swift - 按字段的不同值对 Realm 对象进行分组
- swift - 管理从 url 下载的数据 - swift
- python - 在距离矢量路由协议中实现贝尔曼福特算法
- sql - SQL代码性能优化建议
- reactjs - 在 Heroku 上托管后端时,无法以编程方式访问 React 应用程序中的图像 url
- kubernetes - 如何在kubernetes的volume中映射当前目录?
- php - 使用 PHP 为 ADA 编辑 PDF 中的元数据
- r - R函数调用给出错误“参数数量不正确;应该有4个。” 如何格式化代码以便正确调用函数?