【发布时间】:2018-02-16 18:31:05
【问题描述】:
我正在创建一个 Es6 JS 库,其中包含我通常在前端使用的常见任务,并且我有一些关于如何组织的问题,以便我可以按照我想要的方式导出/导入。我是这样组织的:
src/
module/
function.js
index.js // Module, exports grouped functions
index.js // Enty point, exports entire library
src/index.js:
import module from './module/index';
const library = {
module
};
export default library;
src/module/index.js:
import func from './function';
const module = {
func
};
export default module;
src/module/function.js:
function func() {
console.log('do things');
};
export default func;
我在库中访问这些方法没有问题,但我不知道如何配置 webpack 以便能够以我想要的方式从外部访问它们。我希望能够做这样的事情:
// Use all methods
import Library from 'library';
Library.module.func();
// Use only methods from module
import module from 'library/module';
module.func();
// Use only 1 function
import func from 'library/module/func';
func();
顺便问一下,如果我只是在构建库时添加了webpack创建的JS,我如何访问该库。我的意思是,我能做到吗?
<script src="library.js"></script>
<script>
Library.module.func();
</script>
我尝试自己配置 webpack,但没有成功。库始终是 {},未定义,否则我必须使用 Library.default。其他一些时间不是全球性的。我用 Vue 试过了,结果是这样的:
<script src="library.js"></script>
<script>
const a = Library.default;
new Vue({
el: '#app',
data: {},
methods: {
buttonClick() {
a.module.func(); // works
Library.default.module.func(); // CRASH cause is undefined
}
},
created() {
Library.default.module.func(); // works ???
}
});
</script>
总结一下:
- 我不知道如何正确配置 webpack 以便能够导入库、模块或单个函数。
- 我什至不知道我组织图书馆的方式是否正确。
感谢您的帮助。
【问题讨论】:
标签: javascript webpack es6-modules