Я пытаюсь создать библиотеку, которую можно использовать одним из следующих способов:
import MyLibrary from 'mylibrary';
const instance = new Mylibrary();
и
<script src="mylibrary.js"></script>
<script>
var instance = new MyLibrary();
</script>
Для этого у меня есть очень простой индекс.js, который содержит:
class MyLibrary {
hello() {
console.log('hello');
}
}
export default MyLibrary;
И я установил через npm webpack / webpack-cli / babel-core / babel-cli / babel-preset-env и babel-loader.Затем я создал файл webpack.config.js со следующим содержимым:
const path = require('path')
module.exports = {
entry: {
MyLibrary: './src/index.js'
},
output: {
path: path.resolve(__dirname, './dist'),
filename: '[name].js',
library: '[name]',
libraryExport: 'default',
libraryTarget: 'umd',
umdNamedDefine: true
},
module: {
rules: [
{
test: /\.js$/,
exclude: /(node_modules|bower_components)/,
use: {
loader: 'babel-loader',
options: {
presets: ['env']
}
}
}
]
}
};
Когда я проверяю его:
-
<script src="MyLibrary.js"></script>
<script>
var instance = new MyLibrary();
console.log(instance.hello());
</script>
Работает 1019 *
import MyLibrary from './MyLibrary.js';
console.log(MyLibrary);
Я получаю следующую ошибку : Uncaught SyntaxError: The requested module './MyLibrary.js' does not provide an export named 'default'
Если удалить правило libraryExport: 'default'
из моей конфигурации webpack, тогда:
- Мне нужно вызвать мою библиотеку так:
var instance = new MyLibrary.default();
- У меня все еще проблема та же
Uncaught SyntaxError: The requested module './MyLibrary.js' does not provide an export named 'default'
Как я могу получить эту работу?