【问题标题】:Tyepscript/es6 module exported by babel/webpack as _esModule with default property由 babel/webpack 导出为 __esModule 的 Typescript/es6 模块,具有默认属性
【发布时间】:2016-11-11 15:47:35
【问题描述】:

我已将 javascript 应用程序转换为 typescript,但现在我已将代码转换为 typescript/es6 样式的导出,babel/webpack 无法正确导出它们。

由于我现在使用export default... 语法,babel 将其转换为esModule 对象,该类实际上附加到default 属性。

自然,这种对象格式不再对实际使用它的任何人有效。

我尝试将babel-plugin-add-module-exports 插件添加到组合中,但它没有改变任何东西。我想知道打字稿是否会引起问题。

.babelrc:

{
    "plugins": [
        "add-module-exports",
        "lodash"
    ]
}

tsconfig.json:

{
  "compilerOptions": {
    "target": "es2015",
    "module": "commonjs"
  }
}

webpack.config.js:

entry: {
    'myfile.ts'
},
output: {
    filename: 'myfile.js',
    library: 'MyApp',
    libraryTarget: 'umd'
},
resolve: {
    extensions: ['', '.ts', '.js']
},
module: {
    loaders: [{
        test: /\.ts$/, loader: 'babel!ts-loader'
    }]
}

myfile.ts 只是导出一个类:

export default class MyApp {...

【问题讨论】:

    标签: javascript typescript webpack babeljs


    【解决方案1】:

    您可以将捆绑输出转换为global variable。目前libraryTarget 指向支持CommonjsAMD 的UMD

    【讨论】:

      猜你喜欢
      • 2017-10-26
      • 2017-03-13
      • 2017-06-09
      • 2019-12-29
      • 2016-02-01
      • 2016-12-11
      • 1970-01-01
      • 2021-12-22
      • 2019-09-16
      相关资源
      最近更新 更多