当我将模块推送到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配置:
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;
答案 0 :(得分:2)
我找到了答案......我需要在webpack配置中指定我的libraryTarget。我现在正在使用libraryTarget: 'commonjs'
,它可以很好地运作