Javascript 参数数量不足或找不到条目
我正在使用socket.io构建一个应用程序,它使用客户端-服务器通信和服务器-谷歌云平台通信。对于前端部分,我使用React,其中我有两个组件App和Touch。将来我会改变项目结构,但现在看起来是这样的 我的项目结构如下:Javascript 参数数量不足或找不到条目,javascript,reactjs,webpack,Javascript,Reactjs,Webpack,我正在使用socket.io构建一个应用程序,它使用客户端-服务器通信和服务器-谷歌云平台通信。对于前端部分,我使用React,其中我有两个组件App和Touch。将来我会改变项目结构,但现在看起来是这样的 我的项目结构如下: nodemodulesFolder publicFolder jsFolder client.js socket.io.js socket.io.js socket.io.js.map touch.js viewF
nodemodulesFolder
publicFolder
jsFolder
client.js
socket.io.js
socket.io.js
socket.io.js.map
touch.js
viewFolder
App.js
index.css
Touch.js
index.js
routes.js
.dockerignore
.env
.gitignore
deployment.yaml
Dockerfile
index.js
ingress.yaml
Jenkinsfike
package.json
package-lock.json
server.js
webpack.config.js
这是我的webpack.config.js
'use strict'
module.exports = {
entry: __dirname + '/cp-test-app/public/index.js',
output: {
path: __dirname + '/cp-test-app/public/',
filename: 'bundle.js'
},
module: {
rules: [
{
test: /\.js?$/,
exclude: /node_modules/,
loader: 'babel-loader',
query: {
presets: ['react', 'es2015']
}
},
{ test: /\.css$/,
use: [
{ loader: "style-loader" },
{ loader: "css-loader" }
]
}
]
},
resolve: {
extensions: ['.js', '.jsx']
}
};
下面是我用来运行应用程序的脚本:
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "webpack --mode development",
"build": "webpack --mode production"
}
但不知何故,我得到了以下错误:
@start/Users/RAULVILLOVALENCIA/OneDrive-马德里理工大学/文档/cp-test-app-2/cp-test app
webpack——模式开发
My package.json如下所示:
{
"description": "Google Cloud Speech Playground with node.js and socket.io.",
"main": "server.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "webpack --mode development",
"build": "webpack --mode production"
},
"author": "",
"license": "ISC",
"babel": {
"presets": [
"env",
"react"
],
"plugins": [
"transform-object-rest-spread"
]
},
"dependencies": {
"@google-cloud/speech": "1.5.0",
"@grpc/proto-loader": "^0.3.0",
"@webpack-cli/init": "^0.1.1",
"ajv": "^6.5.4",
"ajv-keywords": "^3.2.0",
"babel-preset-es2015": "^6.3.13",
"babel-preset-react": "^6.3.13",
"babel-register": "^6.3.13",
"cors": "^2.8.4",
"dotenv": "^4.0.0",
"ejs": "^2.5.7",
"express": "^4.16.3",
"isomorphic-fetch": "^2.2.1",
"json-loader": "^0.5.4",
"nodemon": "^1.18.4",
"path": "^0.12.7",
"react": "^16.5.2",
"react-dom": "^16.5.2",
"react-engine": "^4.5.1",
"react-router": "^3.2.1",
"react-router-dom": "^4.2.2",
"serialize-javascript": "^1.4.0",
"serve-favicon": "^2.3.0",
"socket.io": "^2.0.4"
},
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-core": "^6.26.3",
"babel-loader": "^7.1.5",
"babel-plugin-transform-object-rest-spread": "^6.26.0",
"babel-preset-env": "^1.7.0",
"css-loader": "^1.0.0",
"extract-text-webpack-plugin": "^3.0.2",
"nodemon": "^1.9.2",
"webpack": "^4.20.2",
"webpack-cli": "^3.1.1",
"webpack-node-externals": "^1.6.0"
}
}
Webpack正在查找
/cp-test-app-2/cp-test-app/cp-test-app/public/index.js
,而它应该查找/cp-test-app-2/cp-test-app/public/index.js
通过删除额外的/cp测试应用程序
,在webpack.config.js
中指定正确的相对路径:
'use strict'
module.exports = {
entry: __dirname + '/public/index.js',
output: {
path: __dirname + '/public/',
filename: 'bundle.js'
},
module: {
rules: [
{
test: /\.js?$/,
exclude: /node_modules/,
loader: 'babel-loader',
query: {
presets: ['react', 'es2015']
}
},
{ test: /\.css$/,
use: [
{ loader: "style-loader" },
{ loader: "css-loader" }
]
}
]
},
resolve: {
extensions: ['.js', '.jsx']
}
};
可能与此特定错误无关,但您需要使用以下语法来指定模式:
webpack --mode=development
// ^
// Notice the equals sign.
这应该是传递mode
webpack--mode=production
@PardeepDhingra的语法,你有什么建议?我的意思是不要使用脚本“开始”:“webpack——模式开发”。您认为哪种方式更好?模式可以通过webpack.config.js传递,而不是在开始时传递。这就引出了未知参数:mode
@Joe有趣的是,根据您的包.json
,这些版本都很好。您是否有任何其他webpack
或webpack cli
安装(可能是全局安装?)webpack--version
(在项目目录和其他目录中)的输出是什么?每当我编写此代码webpack--version
时,我都会得到以下信息:webpack--version One cli for webpack必须安装。这些是推荐的选择,作为单独的软件包提供:-webpack cli(https://github.com/webpack/webpack-cli)原始网页包提供了全功能CLI。我们将使用“npm”通过“npm install-D”安装CLI。是否要安装“webpack cli”(是/否):%%
看起来您没有安装cli。您可以通过在项目目录中运行npm install
来安装它(正如您将webpack cli
作为devDependency
),或者您可以使用npm install-g webpack cli
全局安装它。
webpack --mode=development
// ^
// Notice the equals sign.