Webpack ES6模块捆绑带打字稿和Babel

时间:2016-10-31 18:00:15

标签: typescript gulp webpack babeljs es6-modules

我有一个简单的设置,我使用webpack-stream在gulp中使用web pack。 我试图将我的打字稿发送到javascript,并使用es6模块将我的所有模块捆绑到一个文件中。

我的设置(我将.babelrc文件设置为es2015):

  return gulp.src('./app/index.ts')
    .pipe(webpack({
      resolve: {
        extensions: ['', '.ts', '.js']
      },
      module: {
        loaders: [
          { test: /\.ts$/, exclude: /node_modules/, loader: 'ts-loader' },
          { test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader' }
        ]
      },
      output: {
        filename: 'bundle.js'
      }
    }))
    .pipe(gulp.dest('./build));

此设置的结果只是为index.ts转换了我的打字稿并将导入保留在文件中。我的配置出了什么问题?

2 个答案:

答案 0 :(得分:0)

首先,确保你拥有所有npm依赖项:

(str.match(/code (\d+)/)

我相信您还需要指定要使用的预设,因此请更新您的babel加载程序:

"babel": "^6.5.2", "babel-preset-es2015": "^6.9.0", "babel-loader": "^6.2.5"

到此:

{ test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader' }

答案 1 :(得分:0)

解决了它。加载器的配置应如下所示:

loaders: [
  {
    loader: 'babel!ts',
    test: /\.ts$/,
    exclude: /node_modules/
  }
]

这确保了babel在打字稿之前运行。