【问题标题】:webpack is not finding my imports or converting my es6 codewebpack 没有找到我的导入或转换我的 es6 代码
【发布时间】:2016-05-01 08:37:56
【问题描述】:

我是 webpack 的新手,正在尝试为我的客户端项目进行设置。我在here 上创建了一个仓库,里面有我的全部源代码。

我的 webpack 配置如下所示:

var path = require('path');
module.exports = {
    entry: './public/js/main.js',
    output: {
        path: __dirname,
        filename: './public/dist/bundle.js'
    },
    module: {
        loaders: [{ 
            test: /\.js$/,
            loader: "babel-loader",
            include: [
                path.resolve(__dirname, "./public/js"),
            ],
            exclude: [
              path.resolve(__dirname, "node_modules"),
            ]
        }],
        resolve: {
          extensions: ['', '.js', '.jsx']
        }
    }
};

当我跑步时:

webpack

它捆绑了我的 js 并将其放入 dist 文件夹。但是,我可以看到捆绑文件没有Point.jsloadash,可以在我的main.js imports 上找到。而且看起来生成的捆绑代码没有转换为 es6,而只是包含我的 main.js 文件的全部内容。

我哪里出错了?

【问题讨论】:

    标签: javascript ecmascript-6 webpack babeljs


    【解决方案1】:

    在您的包 json 中进行以下更改:

    "devDependencies": {
        "babel": "^6.5.2",
        "babel-core": "^6.7.7",
        "babel-loader": "^6.2.4",
        "babel-preset-es2015": "^6.6.0",
        "webpack": "^1.13.0"
    }
    

    在 webpack.config.js 中:

    var path = require('path');
    module.exports = {
    entry: './public/js/main.js',
    output: {
        path: __dirname,
        filename: './public/dist/bundle.js'
    },
    module: {
        loaders: [{
            test: /\.js$/,
            loaders: ['babel?presets[]=es2015'],
            include: [
                path.resolve(__dirname, "./public/js"),
            ],
            exclude: [
                path.resolve(__dirname, "node_modules"),
            ]
        }],
        resolve: {
            extensions: ['', '.js', '.jsx']
        }
    }
    };
    

    运行 npm install 和 webpack。它应该可以正常工作。

    【讨论】:

    • 谢谢。但它没有从node_modules 中找到模块。有什么原因吗?
    • 如果你使用'import',它肯定会从 node_modules 中找到模块。
    • 找到问题了 :) 谢谢!
    【解决方案2】:

    要完成 XtremeCoder 的回答,这里我需要添加到 webpack.config.js 以使其工作:

    module: {
        loaders: [{ 
            test: /\.js$/,
            loader: "babel-loader",
            include: [
                path.resolve(__dirname, "./public/js"),
            ],
            exclude: [
              path.resolve(__dirname, "node_modules"),
            ],
            query: {
              presets: ['es2015']
            }
        }],
        resolve: {
          extensions: ['', '.js', '.jsx']
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-03-28
      • 1970-01-01
      • 1970-01-01
      • 2017-01-07
      • 1970-01-01
      • 1970-01-01
      • 2017-03-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多