TypeError:<x>在webpack

时间:2018-04-15 18:43:04

标签: node.js npm webpack

当我将模块推送到npm,然后将其导入另一个应用程序时,我得到TypeError: <myModule> is not a function

我的问题实际上是使用webpack还是我通过webpack捆绑时声明/使用我导入的函数的方式?或者我使用babel-loader的方式?

详情:

当myModule的package.json有"main":"src/index.js"这是pre-webpacked版本时,它可以工作。当我将其更改为"main":"dist/index.js"时,我遇到了问题。

我试图像这样使用它: import { myModule } from '@myNPM/myModuleInNPM' ... async function someFunction(stuff) { const scooby = await myModule(stuff) ... }

我的webpack配置:

&#13;
&#13;
var path = require('path')
const nodeExternals = require('webpack-node-externals')

module.exports = {
  entry: './src/index.js',
  target: 'node',
  mode: 'production',
  optimization: {
    // We do not want to minimize our code.
    minimize: false
  },
  performance: {
    // Turn off size warnings for entry points
    hints: false
  },
  devtool: 'nosources-source-map',
  externals: [nodeExternals()],
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: [
          {
            loader: 'babel-loader'
          }
        ]
      }
    ]
  },
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'index.js'
  }
}
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:2)

我找到了答案......我需要在webpack配置中指定我的libraryTarget。我现在正在使用libraryTarget: 'commonjs',它可以很好地运作