【问题标题】:webpack with Babel not working带有 Babel 的 webpack 无法正常工作
【发布时间】:2018-11-03 23:16:21
【问题描述】:

我在 Windows 命令提示符下运行:npm start

然后得到:

JavaScript-ES6@1.0.0 启动 C:\Dans\Courses\JavaScript-ES6 webpack-dev-server

× 「wds」:配置对象无效。 Webpack 已使用与 API 模式不匹配的配置对象进行初始化。 - configuration.module 有一个未知的属性 'loaders'。这些属性是有效的: object { exprContextCritical?, exprContextRecursive?, exprContextRegExp?, exprContextRequest?, noParse?, rules?, defaultRules?, unknownContextCritical?, unknownContextRecursive?, unknownContextRegExp?, unknownContextRequest?, unsafeCache?, WrappedContextCritical?, WrappedContextRecursive?, WrappedContextRegExp?, strictExportPresence?, strictThisContextOnImports? } -> 影响正常模块的选项(NormalModuleFactory)。

npm 错误! Windows_NT 10.0.17134 npm 错误! argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "start" npm 错误!节点 v6.10.0 npm 错误! npm v3.10.10 npm 错误!代码生命周期 npm 错误! JavaScript-ES6@1.0.0 开始:webpack-dev-server npm 错误!退出状态 1 npm 错误! npm 错误! JavaScript-ES6@1.0.0 启动脚本“webpack-dev-server”失败。 npm 错误!确保您安装了最新版本的 node.js 和 npm。 npm 错误!如果你这样做了,这很可能是 JavaScript-ES6 包的问题, npm 错误!不是 npm 本身。 npm 错误!告诉作者这在您的系统上失败: npm 错误! webpack-开发服务器 npm 错误!您可以通过以下方式获取有关如何为此项目打开问题的信息: npm 错误! npm 错误 JavaScript-ES6 npm 错误!或者,如果这不可用,您可以通过以下方式获取他们的信息: npm 错误! npm 所有者 ls JavaScript-ES6 npm 错误!上面可能还有额外的日志输出。


我的 webpack.config.js 文件内容:

const path = require('path');

   module.exports = {
   entry: ['./app/index.js'],
   output: {
       path: path.resolve(__dirname, 'build'),
       filename: 'bundle.js'
   },
   module: {
       loaders: [
         {  
           loader: 'babel-loader',
           test: /\.js$/,
           exclude: /node_modules/
         }
        ]
   },
     devServer: {
        port: 3000,
        contentBase: './build',
        inline: true
    }
}

我的 package.json 文件内容:

{
  "name": "JavaScript-ES6",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
  "build": "webpack",
  "start": "webpack-dev-server"
 },
   "babel": {
   "presets": ["es2015"]
    },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-core": "^6.26.3",
    "babel-loader": "^7.1.4",
    "babel-polyfill": "^6.26.0",
    "babel-preset-es2015": "^6.24.1",
    "webpack": "^4.8.3",
    "webpack-cli": "^2.1.4",
    "webpack-dev-server": "^3.1.4"
  }
}

【问题讨论】:

    标签: webpack webpack-dev-server


    【解决方案1】:

    你的 webpack 配置有一个错误。
    在模块内部,关键字需要是 rules 而不是 loaders

    const path = require('path');
    
    module.exports = {
       entry: ['./app/index.js'],
       output: {
           path: path.resolve(__dirname, 'build'),
           filename: 'bundle.js'
       },
       module: {
           rules: [ //here
             {  
               loader: 'babel-loader',
               test: /\.js$/,
               exclude: /node_modules/
             }
            ]
       },
         devServer: {
            port: 3000,
            contentBase: './build',
            inline: true
        }
    }
    

    【讨论】: