javascript - 如何在 Javascript 中的单个库中导出多个类?
问题描述
我在不同的文件中有两个 JS 类,如下所示:
// Class1.js
export default class Class1 { /* ... */ }
// Class2.js
import Class1 from './Class1'
export default class Class2 { /* ... */ }
还有一个index.js
同时导出的文件
// index.js
import Class1 from './Class1'
import Class2 from './Class2'
export default {Class1, Class2}
我正在使用 webpack 来捆绑它们
// webpack.config.js
const path = require('path')
module.exports = {
devtool: 'source-map',
optimization: {
runtimeChunk: true
},
entry: './src/index.js',
output: {
filename: 'my-lib.js',
path: path.resolve(__dirname, 'dist'),
library: 'MyLib'
},
mode: 'development',
target: 'node',
}
// package.json
{
"name": "my-lib",
"version": "0.1.0",
"main": "dist/my-lib.js",
"module": "src/index.js",
"private": true,
"scripts": {
"build": "webpack"
}
}
但是,当我尝试在单独的项目中使用它们时:
// MyComponent.js
import {Class2} from 'my-lib'
我收到这个警告:
./MyComponent.js 中的警告
“在‘my-lib’中找不到导出‘Class2’
为什么?它显然被导出到index.js
文件中。我怎样才能解决这个问题?是否有正确的方法可以做到这一点,还是我必须为我需要的每个类创建一个不同的库?
解决方案
推荐阅读
- r - Read .txt file into R with tab delimiter and every column starting with non-numeric value
- android - 从 Android 服务内部启动的 Singleton 实例是否会作为服务工作?
- docker - 从第 3 方存储库中检索 Docker 映像标签
- python - 代码未在hackerrank中输出值
- javascript - 使用 $set 抓取 jquery 变量并将其推送到 vue 数组对象
- c# - 如何在 xsd 中向 ComplexType 元素添加自定义属性?
- vba - Excel 到 Word VBA 导出 - 未创建 Word 文档
- next.js - 如何将 AtlasKit 编辑器与 Next.js 一起使用?
- sql - 如果相同的值如何求和列
- javascript - 如何在正则表达式中匹配 < & > 之间的任何内容?