CLI 移到了一个单独的包中:webpack-cli

新手上路,请多包涵

我是 React.js 的新手,我正在尝试从 tutorialspoint 上的教程中学习,但我遇到了错误。这是我执行 npm start 命令时控制台上的错误:

 C:\Users\HP\Desktop\reactApp1> npm start
> reactapp1@1.0.0 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! reactapp@1.0.0 start: `webpack-dev-server --hot`
  npm ERR! Exit status 1
  npm ERR!
  npm ERR! Failed at the reactapp@1.0.0 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

包.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;

主程序

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App.jsx';
ReactDOM.render(<App />, document.getElementById('app'));

应用程序.jsx

 import React from 'react';
class App extends React.Component {
    render() {
        return (
            <div>
                Hello World!!!
            </div>
        );
    }
}
export default App;

索引.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>

原文由 prakash kumar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 239
1 个回答

我经历了同样的例子并面临同样的问题。所以按照上面的答案我首先运行了这个命令 -

 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']
             }
          }
        ]
   }

所以基本上 加载器模块 对象内的 规则 所取代。

我做了这个改变,它对我有用。

在此处输入图像描述

希望它能帮助其他正在学习本教程的人。

为了解决 Invalid configuration object 问题,我参考了这个答案。 https://stackoverflow.com/a/42482079/5892553

原文由 Rito 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题