使用webpack和babel使库可导入

时间:2016-05-27 22:48:36

标签: javascript npm webpack electron babel

我正在尝试使用npmwebpack在我正在开发的babelthis one)上发布一个包。我的代码是用ES6编写的。我的源代码中有一个文件index.js,(暂时)导出我的库中的一个核心组件,它就像这样:

import TheGamesDb from './scrapers/thegamesdb';
export { TheGamesDb };

我正在使用webpackbabel创建一个dist index.js,它是我的包的主文件。我的webpack.config.js是这样的:

const webpack = require('webpack');
const nodeExternals = require('webpack-node-externals');

module.exports = {
  entry: {
    index: ['babel-polyfill', './src/index.js'],
    development: ['babel-polyfill', './src/development.js']
  },
  output: {
    path: '.',
    filename: '[name].js',
    library: 'rom-scraper',
    libraryTarget: 'umd',
    umdNamedDefine: true
  },
  devtool: 'source-map',
  module: {
    loaders: [
      { test: /\.js$/, loader: 'babel-loader', exclude: /node_modules/ }
    ]
  },
  target: 'node',
  externals: [nodeExternals()]
};

现在当我在另一个项目中加载我的包并尝试import我的导出TheGamesDb时就像这样

import { TheGamesDb } from 'rom-scraper';

我收到错误

  

未捕获的TypeError:Path必须是字符串。收到未定义的

需要注意的是,我正在electron中导入我的库。

更新:Electron似乎是这里的主要问题,它甚至不是我的库,而是一个引发此错误的依赖项(仅在Electron中)

1 个答案:

答案 0 :(得分:0)

问题不是我的问题中的任何问题,但node-expat无法在electron中工作。我换了另一个图书馆,现在好了。