问题标签 [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.

0 投票
0 回答
501 浏览

javascript - 为什么我使用 microbundle 创建的 react 库包直接引用图像资产而不是使用 require?

我有一个与microbundle-crl. 现在我将很多依赖项更新到了较新的版本(Typescript 3 → 4,react 16 → 17 等)。

现在,当我使用捆绑我的库时,生成的.js文件会以这种方式加载图像资产。这在index.js和 在index.modern.js

以下是我package.json文件的(恕我直言)相关部分:

虽然在我更新之前它看起来像

当然,第一个版本不再工作了。

我不明白发生了什么,我也不知道如何影响这种行为。我试着摆弄不同的模块类型,但我完全糊涂了。我区分了新旧版本,我找不到任何应该导致这种变化的东西。

如何microbundle-crl决定如何处理我的图像导入?我怎样才能影响它?

0 投票
0 回答
29 浏览

reactjs - Create-react-libary 编译到 /dist/src 而不是 /dist

我正在使用 create-react-library,我注意到在通过 Jest 添加快照测试后,我的文件被编译到 /dist/src。如何将其更改为仅 /dist?

包.json:

在此处输入图像描述

结果:

在此处输入图像描述

0 投票
0 回答
72 浏览

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 标志中,但没有成功。

0 投票
1 回答
282 浏览

javascript - 如何在另一个库中更新后自动重启 Next.js 应用程序?

我有一个带有两个应用程序的 monorepo:

  • Web 应用程序 (Next.js)
  • UI 库(Tailwind,使用Microbundle

我设法让 Web 应用程序看到我对 UI 库所做的更改的唯一方法是:

  • 做出改变
  • 重建 UI 库(在这种情况下,我正在使用microbundle watch
  • 手动重启 Next.js 服务器

我的问题是:如何在每次重新创建其中的文件时自动重新启动 Next.js 服务器ui/dist(因为每次进行更改时都会重新构建它们)?

0 投票
1 回答
109 浏览

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

图像构建损坏

0 投票
1 回答
87 浏览

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”

0 投票
0 回答
31 浏览

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. 谢谢

0 投票
0 回答
34 浏览

javascript - 有没有办法为 microbundle-crl 配置输出目录以使用 React 延迟加载?

我正在使用 microbundle-crl 捆绑我的反应应用程序代码,我得到一个巨大的单个文件作为输出,所以尝试添加延迟加载,这样它会生成许多小块。但是当我尝试编译时,我得到了以下错误。

错误:生成多个块时,您必须设置“output.dir”而不是“output.file”。

0 投票
1 回答
40 浏览

javascript - 如何将 microbundle-crl 配置为不捆绑测试文件?

我将测试与模块放在同一个文件夹中,以避免在树上跳来跳去。捆绑时是否可以使 microbundle-crl 跳过测试文件?

我正在尝试在我的仓库https://github.com/trajano/react-hooks-tests