Webpack2无法解析:config.context绝对路径

时间:2017-03-22 13:00:12

标签: path webpack webpack-2

我正在尝试运行我的webpack配置文件(见下文),但我仍然遇到某些类型的错误,这些错误引用了我在webpack设置中使用的路径:

 - config.context 
 - config.module.rules
 - config.output

我的想法是,我绝对设置了config.context路径(因为它是用docs编写的),否则我的webpack.config文件会引用父目录中的node_modules。但是,当我运行webpack -w --env.dev命令时,它会抛出以下错误:

enter image description here

在我看来,config.context无法处理绝对路径。任何帮助如何正确设置路径?谢谢!

我的webpack.config.js:

var path = require('path');
var webpack = require('webpack');
var ExtractText = require('extract-text-webpack-plugin');

    module.exports = function (env) {
      var project = {
        env: env.prod ? 'prod' : 'dev',
        jsBase: './routesMap/',
        cssBase: './src/css/'
      }

      var config = {
        context: path.resolve(__dirname),
        entry: {
          'routesMap': project.jsBase + 'main.js'
        },
        output: {
          path: path.join(__dirname, '/dist'),
          filename: '[name].js'
        },
        plugins: [
          new ExtractText({
            filename: 'styles.min.css',
            disable: false,
            allChunks: true
          })
        ],
        module: {
          rules: [
            {
              test: /\.js$/,
              loader: 'babel-loader',
              include: path.join(__dirname, '/routesMap'),
              exclude: /node_modules/,
              query: {
                cacheDirectory: true,
                presets: ['es2015'],
                plugins: ["transform-runtime"]
              }
            }
          ]
        }
      };

      return config;
    }

2 个答案:

答案 0 :(得分:1)

这是最新的webpack版本的问题。尝试在shell中使用大写驱动器号,例如C:/代替c:/

更多信息https://github.com/webpack/webpack/issues/4530

答案 1 :(得分:0)

我卸载了最新的webpack版本(我有webpack 2.3.0)并安装了2.2.0版本,问题解决了!正如@zemirco在他的回答中所述,它与绝对路径中的大小写敏感字母有关。不幸的是,将小写字母改为大字母对我没有帮助,所以我只是更改了webpack版本。