我正在使用webpack 4.20.0 npm软件包。我在npm软件包mimer
中的依赖项之一。 mimer
的文件mime.types
位于node_modules/mimer/lib/data/mime.types
中。该软件包还具有文件node_modules/mimer/lib/exec.js
,其中包含以下行:
list: (typeof process !== 'undefined' && process.cwd) ? require('./data/parser')(__dirname + '/data/mime.types') : $_MIMER_DATA_LIST
webpack成功编译了我的代码,我得到了一个包,但是当我用node.js运行该包时,出现此错误:
Error: ENOENT: no such file or directory, open '//data/mime.types'
我认为这是由于webpack通过将__dirname
解析为根而错误地提供了__dirname
值而导致的。有没有办法解决webpack中的此类问题?
这是我的webpack配置:
const path = require('path')
const webpack = require('webpack')
module.exports = {
mode: 'development',
target: 'node',
context: path.resolve(__dirname),
entry: path.resolve(__dirname, 'src', 'index.js'),
resolve: {
modules: [path.resolve(__dirname, './src'), 'node_modules'],
extensions: ['.js', '.jsx', '.json'],
},
output: {
filename: 'bundle.js',
publicPath: path.resolve(__dirname, 'assets'),
path: path.resolve(__dirname)
},
devtool: 'source-map',
plugins: [
new webpack.IgnorePlugin(/^(hiredis|transifex)$/)
],
module: {
rules: [
{
test: /\.js?$/,
use: {
loader: 'babel-loader',
options: {
rootMode: 'upward'
}
},
include: [
path.resolve(__dirname, 'src')
]
}
]
}
}
答案 0 :(得分:2)
因此,基本上webpack返回__dirname
为/
。因此,您基本上必须告诉webpack解决__dirname
。
添加:
node: {
__dirname: true
}
与__filename
也一样。