问题标签 [microbundle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 为什么我使用 microbundle 创建的 react 库包直接引用图像资产而不是使用 require?
我有一个与microbundle-crl
. 现在我将很多依赖项更新到了较新的版本(Typescript 3 → 4,react 16 → 17 等)。
现在,当我使用捆绑我的库时,生成的.js
文件会以这种方式加载图像资产。这在index.js
和 在index.modern.js
:
以下是我package.json
文件的(恕我直言)相关部分:
虽然在我更新之前它看起来像
当然,第一个版本不再工作了。
我不明白发生了什么,我也不知道如何影响这种行为。我试着摆弄不同的模块类型,但我完全糊涂了。我区分了新旧版本,我找不到任何应该导致这种变化的东西。
如何microbundle-crl
决定如何处理我的图像导入?我怎样才能影响它?
typescript - 如何在我的应用程序中全局包含 preact/hooks 并在我的扩展中使用它?
我正在 typescript/preact 中构建一个应用程序,它具有可以按需安装的扩展功能。我在全局范围内使用 preact,因此并非每个扩展都将其作为依赖项包含在内,但我在从扩展访问preact/hooks时遇到问题。
Preact 通过主要 index.html 文件中的脚本标记作为全局包含:
我使用 webpack 来构建我的主应用程序,其中我使用externals属性来指示 preact 已经可用。
通过从 JSON API 读取列表,然后动态加载它们的 .js 文件,将扩展包含在应用程序中,全局函数将触发全局函数注册自己。
我使用microbundle将扩展构建为一个包文件,其中我指出 preact 是一个全局变量:
到目前为止,这行得通。组件已正确渲染,因此没有问题。问题是当我想在组件中使用useState挂钩时。通常,您可以通过以下方式导入它:
当我现在使用加载扩展时,我收到一个错误:
我已经验证,当我禁用 useState 挂钩的导入时,问题不会发生。由于 preact/hooks 的导入是我所做的唯一更改,我的感觉是它与此有关,这就是我卡住的地方。如何使preact/hooks全局可用以供扩展使用,因此代码不会在每个扩展中重复?
我试图将它添加到 microbuild 命令中的 globals 标志中,但没有成功。
javascript - 如何在另一个库中更新后自动重启 Next.js 应用程序?
我有一个带有两个应用程序的 monorepo:
- Web 应用程序 (Next.js)
- UI 库(Tailwind,使用Microbundle)
我设法让 Web 应用程序看到我对 UI 库所做的更改的唯一方法是:
- 做出改变
- 重建 UI 库(在这种情况下,我正在使用
microbundle watch
) - 手动重启 Next.js 服务器
我的问题是:如何在每次重新创建其中的文件时自动重新启动 Next.js 服务器ui/dist
(因为每次进行更改时都会重新构建它们)?
reactjs - 错误:'typeOf' 不是由 node_modules\react-is\index.js 导出,由 node_modules\styled-components\dist\styled-components.browser.esm.js 导入
当我尝试跑步时,闯入npm start
( microbundle-crl --no-compress --format modern,cjs
)
我已经尝试删除node_modules
并再次package-lock.json
运行npm i
,但什么也没有。
反应:17.0.2
样式组件:5.3.3
微束crl:0.13.10
reactjs - 使用 microbundle 的基本实现不起作用
请参阅示例回购 https://github.com/inspiraller/webpack-and-microbundle
微束码
mymicrobundle/src/index.js
microbundle/package.json - 用于输出
导入微束代码
webpack-loads-microbundle/package.json
webpack-load-microbundle/src/index.tsx
注意:microbundle 包被捆绑为 javascript,但我使用 typescript 来导入它。虽然不应该有任何区别。我也在使用 pnpm 而不是 npm,但这应该没问题,因为所有其他导入都有效。
我的路径可能有问题。
错误
未找到模块:错误:无法解析“C:\baps\react_all\webpack-and-microbundle\webpack-loads-microbundle\src”中的“@mymicrobundle/example”
reactjs - Microbundle-crl 给出错误 TypeError: react__WEBPACK_IMPORTED_MODULE_1___default(...) is not a function
我试图构建一个 npm 包,当我使用 --no-compress 构建时,它可以工作,但是当我删除 --no-compress 时它会崩溃。产生以下错误: TypeError: react__WEBPACK_IMPORTED_MODULE_1___default(...) is not a function。
经过进一步调查,我发现react是导入的,import e from 'react'
并且有一些函数是用以下定义的function e()
,所以它们有冲突。我试图找出一种方法,在我不使用--no-compress
. 谢谢
javascript - 有没有办法为 microbundle-crl 配置输出目录以使用 React 延迟加载?
我正在使用 microbundle-crl 捆绑我的反应应用程序代码,我得到一个巨大的单个文件作为输出,所以尝试添加延迟加载,这样它会生成许多小块。但是当我尝试编译时,我得到了以下错误。
错误:生成多个块时,您必须设置“output.dir”而不是“output.file”。
javascript - 如何将 microbundle-crl 配置为不捆绑测试文件?
我将测试与模块放在同一个文件夹中,以避免在树上跳来跳去。捆绑时是否可以使 microbundle-crl 跳过测试文件?