webpack生成后的代码里直接写的new Error找不到 “.”模块
报错点在这里https://github.com/GoogleChro...
const PROJECT_ROOT = fs.existsSync(path.join(__dirname, '..', 'package.json')) ? path.join(__dirname, '..') : path.join(__dirname, '..', '..');
static defaultRevision() {
return require(path.join(PROJECT_ROOT, 'package.json')).puppeteer.chromium_revision;
}
我修改这个库的源码打印了一下fs.existsSync文件路径结果是存在的
webpack排除第三方库也可以打包并执行成功
但是webpack打包源码+第三方库的时候就找不到模块
webpack配置如下:
module.exports = {
target: 'node',
cache: true,
entry: {
main: path.join(__dirname, 'src', 'main')
},
output: {
filename: '[name].js',
path: path.resolve(__dirname, 'dist')
},
context: path.resolve(__dirname),
node: {
console: true,
global: true,
process: true,
__filename: true,
__dirname: true,
Buffer: true,
setImmediate: true
},
module: {
rules: [
{
test: /.jsx?$/,
include: [
path.resolve(__dirname, 'node_modules')
],
loader: 'octal-number-loader'
},
{
test: /.jsx?$/,
include: [
path.resolve(__dirname, 'src')
],
exclude: [
path.resolve(__dirname, 'node_modules'),
path.resolve(__dirname, 'bower_components')
],
loader: 'babel-loader?cacheDirectory'
}
]
},
plugins: [
new CopyWebpackPlugin([
{ from: 'src/config', to: 'config' },
{
from: 'node_modules/puppeteer/.local-chromium/win64-515411/chrome-win32',
to: 'chromium',
ignore: ['interactive_ui_tests.exe', 'locales/*.pak']
},
{
from: 'node_modules/puppeteer/.local-chromium/win64-515411/chrome-win32/locales/zh-CN.pak',
to: 'chromium/locales/zh-CN.pak',
flatten: true
},
{
from: 'index.js'
}
]),
new LodashModuleReplacementPlugin(),
new webpack.SourceMapDevToolPlugin({
filename: '[name].js.map',
exclude: ['vendor.js', 'manifest']
}),
new BundleAnalyzerPlugin({
analyzerMode: 'static',
reportFilename: 'report.html',
openAnalyzer: false
})
],
resolve: {
extensions: ['.js', '.json'],
alias: {
'~': path.resolve('./src')
},
mainFields: ['jsnext:main', 'main']
},
devServer: {
publicPath: path.join('/dist/')
},
stats: {
warnings: false,
source: false,
cached: false,
children: false,
chunks: false,
chunkOrigins: false,
modules: false
}
}
.babelrc配置如下:
{
"presets": [
[
"env",
{
"targets": {
"node": "current"
},
"modules": false
}
]
],
"plugins": [
"lodash",
"closure-elimination",
"trace",
"console",
"transform-object-rest-spread",
"transform-class-properties",
"transform-exponentiation-operator",
"transform-function-bind",
"transform-decorators",
"transform-do-expressions",
"transform-strict-mode"
],
"ignore": [
"node_modules",
"foo.js",
"bar/**/*.js",
"userDataDir",
"tmp",
"image",
"download",
"dist"
]
}