私はReact.jsを初めて使い、 tutorialspoint のチュートリアルから学ぼうとしていますが、エラーに直面しました。 npm startコマンドを実行すると、コンソールにエラーが表示されます。
C:\Users\HP\Desktop\reactApp1> npm start
> [email protected] start C:\Users\HP\Desktop\reactApp1.
> webpack-dev-server --hot
The CLI moved into a separate package: webpack-cli.
Please install .webpack-cli. in addition to webpack itself to use the CLI.
-> When using npm: npm install webpack-cli -D
-> When using yarn: yarn add webpack-cli -D
module.js:540
throw err;
Error: Cannot find module .webpack-cli/bin/config-yargs.
at Function.Module._resolveFilenam (module.js:538:15)
at Function.Module. load (module.j5:668:25)
at Module.require (module.js,587.17)
at require (internal/module.js:11:18)
at Object•<anonymous> (C:\Users\HP\Desktop\reactApp1\node_modules\webpack-dev-server\bin\webpack-dev-server.js:65:1)
at Module. compile (module.js:663:30)
at Object.Module. extensions. .js (module.js:656:10)
at Module.load (module.js:556:32)
at tryModuleLoad (module.js:699:12)
at Function.Module. load (modul.js:691:3)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] start: `webpack-dev-server --hot`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:Users\HP\AppData\Roaming\npm-cache\_logs\2018-03-06T05_29_08_833Z-debug.log
package.json
{
"name": "reactapp1",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "webpack-dev-server --hot"
},
"author": "",
"license": "ISC",
"dependencies": {
"babel-core": "^6.26.0",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1",
"react": "^16.2.0",
"react-dom": "^16.2.0",
"webpack": "^4.0.1",
"webpack-dev-server": "^3.1.0"
},
"devDependencies": {
"babel-loader": "^7.1.3"
}
}
webpack.config.js
var config = {
entry: './main.js',
output: {
path:'./',
filename: 'index.js',
},
devServer: {
inline: true,
port: 8090
},
module: {
loaders: [
{
test: /\.jsx?$/,
exclude: /node_modules/,
loader: 'babel',
query: {
presets: ['es2015', 'react']
}
}
]
}
}
module.exports = config;
main.js
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App.jsx';
ReactDOM.render(<App />, document.getElementById('app'));
App.jsx
import React from 'react';
class App extends React.Component {
render() {
return (
<div>
Hello World!!!
</div>
);
}
}
export default App;
index.html
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "UTF-8">
<title>React App</title>
</head>
<body>
<div id = "app"></div>
<script src = "index.js"></script>
</body>
</html>
私は同じ例を経験し、同じ問題に直面しました。したがって、上記の回答に従って、最初にこのコマンドを実行しました-
npm install -g webpack-cli --save-dev
何も起こらず、依然として同じ問題に直面していました。
次に、このコマンドを実行しました-
npm install webpack-cli --save-dev
問題は解決しましたが、別のエラーが発生していました。
新しいWebpackバージョンでは、モジュールの属性も変更されています。そのため、webpack.config.jsファイルも変更する必要があります。
module: {
rules: [
{
test: /\.jsx?$/,
exclude: /node_modules/,
loader: 'babel-loader',
query: {
presets: ['es2015', 'react']
}
}
]
}
したがって、基本的にloadersはmoduleオブジェクト内でrulesに置き換えられます。
私はこの変更を行い、それは私のために働いた。
このチュートリアルをフォローしている他の人に役立つことを願っています。
Invalid configuration object
の問題を解決するために、この回答を参照しました。 https://stackoverflow.com/a/42482079/589255
Webpack 3では、webpack自体とそのCLIは同じパッケージに含まれていましたが、バージョン4では、それぞれをより適切に管理するために2つを分離しました。
問題を解決するには、他のパッケージと同様に、コマンドラインでnpm install webpack-cli --save-dev
を実行して、エラーが示すようにwebpack-cliパッケージをインストールします。
同じ問題を抱えていて、上記の解決策では運がありませんでした-webpack-cliをローカルだけでなくグローバルにインストールしてみましたが、これはうまくいきました。
npm install -g webpack-cli --save-dev
これは私のためにそれを修正しました。少なくともwebpack --mode development.
を実行するのに十分
Webpack 4で解決済み-webpack 2以降で動作することを望みます
このコマンドを使用してwebpack-cliもグローバルにインストールします
npm i -g webpack-cli
そのため、合計で次の2つのコマンドを実行する必要があります。1つはローカル用、もう1つはCLIをグローバルにインストールするためです。
npm i -D webpack-cli
npm i -g webpack-cli
それは私のために働くそれはあなたのためにも働くことを願っています:)
Step1:最初の実行
npm i webpack webpack-dev-server webpack-cli --save-dev
Step2:ローダーはルールに置き換えられるため、webpack.config.jのコードを変更します。 webpack.config.jsファイルを変更しましょう:
var config = {
entry: './main.js',
output: {
path:'./',
filename: 'index.js',
},
devServer: {
inline: true,
port: 8090
},
module: {
rules: [
{
test: /\.jsx?$/,
exclude: /node_modules/,
loader: 'babel',
query: {
presets: ['es2015', 'react']
}
}
]
}
}
module.exports = config;
Step3:ここでpackage.jsonファイルに移動し、スクリプトオプションにいくつかの変更を加えます。
"scripts": {
"start": "webpack-dev-server --mode development --open --hot",
"build": "webpack --mode production"
},
Step4:今すぐ実行
npm start
コンソールで
Webpack-cliではなく、webpackサーバーをインストールする必要があります。 このブログ投稿 の2番目のポイントをご覧ください。 npm i -g [email protected]
を試してください。
エラーコンソールは、単に問題の解決方法を示しています。 webpack
モジュールはwebpack-cli
モジュールに依存しているようです。この問題を解決するには、npm install webpack-cli --save
コマンドを実行するだけです。それはちょうどうまくいくでしょう。
webpack-dev-server
を使用する場合は、webpack
およびwebpack-cli
を最初にインストールする必要があります。 webpack
はコンパイラを格納するモジュールであり、webpack-cli
はそれを実行するコマンドラインインターフェイスです。それ以外の場合、webpack-command
のはるかに軽量なバージョンであるwebpack-cli
を希望する場合は、webpack
およびwebpack-serve
をインストールする必要があります。