带有 Babel 的 webpack 无法正常工作

Posted

技术标签:

【中文标题】带有 Babel 的 webpack 无法正常工作【英文标题】:webpack with Babel not working 【发布时间】: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"
  

【问题讨论】:

【参考方案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
    

【讨论】:

以上是关于带有 Babel 的 webpack 无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

带有 ReactJS 和 Webpack 的 Firebase FCM 无法正常工作:我们无法注册默认服务工作者

如何让 Babel 处理 LESS 文件?

无法在与 webpack 和 babel 的反应中公开组件库

Webpack 2 的 Babel 转换运行时问题

带有 JavaScript、React 和 jest 的 Webpack 给出 Babel 错误

@babel/typescript 在 webpack 构建时不会抛出错误