webpack.config上不能要求webpack

时间:2018-03-30 18:01:13

标签: javascript jquery webpack ecmascript-6

我正在尝试使用three.js启动webapp,我想使用webpack将所有内容捆绑在一起,但我似乎无法在webpak.config上找到要求(“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

时才会出现错误

2 个答案:

答案 0 :(得分: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告诉我们,在版本6.4.0之前,Node.js不支持对象解构。

webpack docs建议使用Node.js的当前LTS版本:

  

先决条件

     

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

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

答案 1 :(得分:0)

1)var path = __dirname;

此行需要删除。

2)npm install webpack --save-dev

这会将webpack添加到dev依赖项。