Reputation: 317
NodeJS/Express: Webpack fails transpiling src/server/app.js
to dist/server/app.js
, after me adding import express from 'express'
to the src-file (src/server/app.js
).
The error messages look like:
ERROR in ./~/express/lib/request.js
in detail:
Module not found: Error: Can't resolve 'net'
in '/Users/timo/Desktop/Eggs/node_modules/express/lib'
or
ERROR in ./~/express/lib/view.js
in detail:
Module not found: Error: Can't resolve 'fs'
in '/Users/timo/Desktop/Eggs/node_modules/express/lib'
Do I have to change something in my webpack.config.babel.js-file?
here it is:
export default [
{
entry: './src/server/app.js',
output: {
path: './dist/server',
filename: 'app.js'
},
module: {
loaders: [{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader',
query: { presets: ['es2015', 'react'] }
}]
}
},
{
entry: './src/client/app.js',
output: {
path: './dist/client',
filename: 'app.js'
},
module: {
loaders: [{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader',
query: { presets: ['es2015', 'react'] }
}]
}
}
]
Upvotes: 3
Views: 1028
Reputation: 30696
are you config .babelrc?webpack1 has no query option in module.loaders.if the problem even occurs.you can delete node_modules
and reinstall npm install
.May be something you link some dependencies from global repository via npm link
,I have met.
Upvotes: 0
Reputation: 203534
Try setting the "node"
target for your server-side code:
{
entry : './src/server/app.js',
target : 'node',
...
}
By default, Webpack will compile for usage in a web browser, which doesn't support a lot of modules that only make sense to run server-side (like net
and fs
).
Upvotes: 6