我正在处理我的第一个完整堆栈应用程序(它是一个简单的笔记应用程序),当我捆绑webpack时,我收到此警告:
>警告在./node_modules/express/lib/view.js 81:13-25严重 依赖:依赖的请求是表达式@ ./node_modules/express/lib/view.js @ ./node_modules/express/lib/application.js @ ./node_modules/express/lib/express.js @ ./node_modules/express/index.js @ ./routes/server.js
这是我的webpack.config.js
文件:
const webpack = require('webpack');
const path = require('path');
const nodeExternals = require('webpack-node-externals');
const config = {
entry: {
app: './routes/server.js'
},
output: {
path: __dirname + "/public",
filename: 'build/bundle.js'
},
module : {
rules : [
{
test : /\.jsx?/,
loader : 'babel-loader',
exclude: /node_modules/,
query: {
"presets" : ["es2015", "react"]
}
}
]
},
target: 'node',
externals: [nodeExternals({
whitelist: ['express', 'mongodb', 'body-parser', 'react', 'react-dom', 'random-color']
})]
};
module.exports = config;
这是我的package.json
文件:
{
"name": "quick-notes-app",
"version": "1.0.0",
"description": "my first full-stack javascript app",
"main": "./routes/server.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "nodemon --exec babel-node ./routes/server.js --ignore public/",
"dev": "webpack -wd",
"lint": "eslint ./"
},
"repository": {
"type": "git",
"url": "git+https://github.com/CandiW/quick-notes-app.git"
},
"author": "CandiW",
"license": "ISC",
"bugs": {
"url": "https://github.com/CandiW/quick-notes-app/issues"
},
"homepage": "https://github.com/CandiW/quick-notes-app#readme",
"dependencies": {
"body-parser": "^1.18.2",
"express": "^4.16.3",
"mongodb": "^2.2.35",
"randomcolor": "^0.5.3",
"react": "^16.3.2",
"react-dom": "^16.3.2"
},
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-core": "^6.26.3",
"babel-eslint": "^8.2.3",
"babel-loader": "^7.1.4",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1",
"eslint": "^4.19.1",
"eslint-plugin-react": "^7.7.0",
"nodemon": "^1.17.3",
"webpack": "^3.11.0",
"webpack-node-externals": "^1.7.2"
}
}
我安装了webpack-node-externals
,因为我从webpack收到了一些错误和警告。我当时确定webpack没有忽略node_modules
,尽管node_modules
中有exclude
。
我不确定自己做错了什么,或者我做错了什么?如果有人对如何修复有任何想法,请帮忙!您还可以在此处找到此项目的github回购:Quick-Notes-App
答案 0 :(得分:0)
它为我工作。我更改了webpack.server.config.js中的代码,您的代码可能是webpack.config.js或webpack.server.js ...等
.... webpack配置...
..from...
entry:{...},
output: {
path: path.join(__dirname, '..', 'build'),
publicPath: '/',
libraryTarget: "commonjs2"
},
target: 'node',
到
entry:{...},
output: {
path: path.join(__dirname, '..', 'build'),
publicPath: '/',
libraryTarget: "commonjs2"
},
target: 'node',
externals: {
express: 'express',
},
只需添加以下代码(其他模块相同)
externals: {
express: 'express',
},