javascript - 在 React 中,如何直接从 webpack 包中导入组件?
问题描述
在正常情况下,我们从另一个 JavaScript 文件中导入组件。但是,在我的项目中,我想从 webpack 创建的包中导入组件。
第 1 步: 创建一个 ABC 文件夹捆绑包,命名为 abc.bundle.js
注意:ABC 文件夹有文件 a.js、b.js、c.js 并分别有组件 a、b、c
第 2 步: 在 DEF 文件夹中,写入文件 DEF.js,如下所示
注意:从 a.js 导入“a”组件可以正常工作
import react from 'react'
import a from './abc/a.js'
第 3 步: 在 DEF 文件夹中,写入文件 DEF.js,如下所示
注意:从 abc.bundle.js 导入“a”组件,会报错
import react from 'react'
import a from 'abc.bundle.js'
根据我和我的团队的说法,我们可以从包中导入组件。因为
1) The bundle is a js file, and we can import one code from one js file to another
2) Node modules packages are also get created by webpack, and we can import functionalities from that package.
解决方案
您需要abc
使用 Webpack 将该文件夹编译为独立的库模块,然后才能导入它。然后,您可以将其发布到 npm,并像任何其他 3rd 方模块一样使用它,或者只是将其发布到父项目中的文件夹(可能使用 monorepo 结构)。
Webpacklibrary
和libraryTarget
选项值得一看:
https://webpack.js.org/configuration/output/#output-library https://webpack.js.org/configuration/output/#output-librarytarget
或者,有一些工具可以帮助您解决此类问题:
例如
推荐阅读
- java - 在 Android Studio 中读取文本文件
- javascript - TypeError:无法读取 null 的属性“searchField”
- c++ - CreateProcess 与 CreateFile EXE
- swift - 将嵌套 JSON 保存到 Core Data 的最佳方法
- git - 如何更改 IntelliJ 中的 git gutter 与哪个提交进行比较
- apache-kafka - 无法发送大卡夫卡消息
- mysql - mysql从select中的值创建命名表
- c - 为什么我得到这个元素的内存地址?
- c++ - 堆数组中对象的构造函数
- amazon-cloudformation - Cloudformation EKS 在 terraform 中启动配置用户数据等效项