webpack,创建一个 library失败?

用webpack打包,创建一个 library失败了,入口文件如下:

export default {
    dialog,
    alert,
    confirm,
    toast,
    loading,
    actionSheet,
    topTips,
    searchBar,
    tab,
    form,
    uploader,
    picker,
    datePicker,
    gallery,
    slider,
    step,
    accordion,
    stepper,
    tabs,
    popover
};

然后webpack配置文件为:

entry: './src/js/mtui.js',
  output: {
    path: path.resolve(__dirname, './dist'),
    publicPath: './js/',
    filename: 'mtui.min.js',
    library: 'mtui',
    libraryTarget: 'umd',
  },
  externals: {
    lodash: {
      commonjs: 'lodash',
      commonjs2: 'lodash',
      amd: 'lodash',
      root: '_'
    }
  },

打包时并没有报错,打包出来后
我如下调用时:

import mtui from './uilts/mtui.min'

则报错:

"export 'default' (imported as 'mtui') was not found in './uilts/mtui.min'

然后如果我换种调用方式:

const mtui = require('./uilts/mtui.min')

控制台打印出来的却只有一下内容,我原来导出的对象并没有

clipboard.png

请问一下大家,这是为什么?怎么解决?

阅读 3k
1 个回答
  1. 你用这个配置试试

    libraryExport: 'default' // webpack3加的配置

    但是这么着好像就不能用umd方案了

  2. 或者用module.exports导出,但是这样就不能用webpack3的 Scope Hoisting特性了(只支持es module),本来就没用的话无所谓。

感兴趣的话可以看看这个

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题