【问题标题】:Can't require webpack on webpack.config不能在 webpack.config 上要求 webpack
【发布时间】:2018-09-09 18:36:25
【问题描述】:

我正在尝试使用 three.js 启动一个 webapp,我想使用 webpack 将所有内容捆绑在一起,但我似乎无法弄清楚 webpak.config 上的 require("webpack"),我必须这样做才能使用 webpack.providePlugin

这是我的 webpack.config.js

var path  = __dirname;
const webpack = require('webpack');

module.exports = {
  entry: {
    main: './main.js'
  },
  output: {
    path: __dirname + '/dist/',
    filename: '[name].bundle.js'
  },
  module: {
    loaders: [
      {
        test: /\.js$/,
        loader: 'babel-loader'
      }
    ]
  },
  plugins: [
    new webpack.ProvidePlugin({
      $: 'jquery',
      jQuery: 'jquery'
    })
  ]
}

这是我运行 webpack 时出现的错误 Error on webpack run

该错误仅在我尝试要求 webpack 时出现

【问题讨论】:

  • 你安装 webpack 了吗?
  • 你不需要在配置文件中要求 webpack。你从命令行运行 webpack。
  • 那个错误是关于路径而不是 webpack。
  • 更新的图像,使用错误的屏幕截图,我确实安装了 webpack,当我在没有要求的情况下运行它时,在新的 webpack.ProvidePlugin({ line) 上出现“未定义 webpack”的错误>
  • 你用的是什么版本的Node.js,什么版本的webpack?

标签: javascript jquery webpack ecmascript-6


【解决方案1】:

1) var path = __dirname;

此行需要删除。

2) npm install webpack --save-dev

这会将 webpack 添加到开发依赖项。

【讨论】:

  • 尝试在模块括号结束后和插件前添加逗号
【解决方案2】:

我 99% 确定问题在于您使用的是旧版本的 Node.js。

这是您的错误消息:

/home/eloy/Sites/proyectomi/node_modules/webpack/lib/Compiler.js:10
const {
      ^

SyntaxError: Unexpected token {

如果您使用的是 Webpack 4.3 或 4.4(最新版本),那么有问题的行 line 10 of lib/Compiler.js 是此解构赋值的第一行:

const {
    Tapable,
    SyncHook,
    SyncBailHook,
    AsyncParallelHook,
    AsyncSeriesHook
} = require("tapable");

快速访问node.green 告诉我们,Node.js 直到 6.4.0 版本才支持对象解构。

webpack docs 推荐使用 Node.js 的当前 LTS 版本:

先决条件

在我们开始之前,请确保您安装了新版本的 Node.js。当前的长期支持 (LTS) 版本是 一个理想的起点。您可能会遇到各种问题 旧版本,因为它们可能缺少功能 webpack 和/或其 相关包需要。

截至今天 (2018-03-30),这是 Node.js 8.11.1。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 2015-09-23
    • 1970-01-01
    • 2017-08-12
    • 2016-04-22
    • 2017-09-21
    相关资源
    最近更新 更多