Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用webpack 2和babel loader构建javascript异步/等待_Node.js_Webpack_Async Await_Babel Loader - Fatal编程技术网

Node.js 使用webpack 2和babel loader构建javascript异步/等待

Node.js 使用webpack 2和babel loader构建javascript异步/等待,node.js,webpack,async-await,babel-loader,Node.js,Webpack,Async Await,Babel Loader,我正在使用Webpack2.3.3构建node.js应用程序,该应用程序使用异步/等待javascript语法。使用babel loader 6.4.1完成运输。 我的package.json如下所示: { (...) "scripts": { "build": "rm -Rf dist; webpack -p --progress --colors --display-error-details --config webpack/prod.js", "postinstall

我正在使用Webpack2.3.3构建node.js应用程序,该应用程序使用异步/等待javascript语法。使用babel loader 6.4.1完成运输。 我的
package.json
如下所示:

{ (...)
  "scripts": {
    "build": "rm -Rf dist; webpack -p --progress --colors --display-error-details --config webpack/prod.js",
    "postinstall": "npm run build",
    "start": "node dist/assets/server.js"
  },
  (...)
  "dependencies": {
    "babel-cli": "6.24.1",
    "babel-core": "6.24.1",
    "babel-loader": "6.4.1",
    "babel-plugin-transform-async-to-generator": "6.24.1",
    "babel-polyfill": "6.23.0",
    "babel-preset-es2015": "6.24.1",
    "babel-preset-react": "6.24.1",
    "babel-preset-stage-0": "6.24.1",
    "babel-preset-stage-1": "6.24.1",
    "eslint": "3.19.0",
    "eslint-loader": "1.7.1",
    "eslint-plugin-react": "6.10.3",
    (...)
    "webpack": "2.3.3"
  },
  (...)
}
我的网页包配置使用带有行
加载程序的
转换异步到生成器
插件:['babel-loader?presets[]=es2015&presets[]=stage-0&presets[]=react&plugins[]=transform async to generator','eslint loader']
在配置文件
webpack/prod.js
中:

'use strict';

require('babel-polyfill');
var webpack = require('webpack');
var path = require('path');
var fs = require('fs');

var nodeModules = {};

fs.readdirSync('node_modules')
    .filter(function(x) {
        return ['.bin'].indexOf(x) === -1;
    })
    .forEach(function(mod) {
        nodeModules[mod] = 'commonjs ' + mod;
    });

var serverConfig = {
    entry: ['babel-polyfill', './src/server'],
    target: 'node',
    externals: nodeModules,
    output: {
        path: path.resolve(__dirname, '../dist/assets/'),
        filename: 'server.js'
    },
    plugins: [
        new webpack.optimize.UglifyJsPlugin({
            compress: { warnings: false }
        })
    ],
    resolve: {
        extensions: ['.js', '.jsx']
    },
    module: {
        loaders: [
            {
                test: /\.jsx?$/,
                loaders: ['babel-loader?presets[]=es2015&presets[]=stage-0&presets[]=react&plugins[]=transform-async-to-generator', 'eslint-loader'],
                exclude: /node_modules/
            }
        ]
    }
};

module.exports = [ clientConfig, serverConfig ];
当我运行
npm run build
时,在包含
异步函数foo(arg){(…)}
的行上生成失败,错误为
解析错误:意外的令牌函数

当我删除异步/等待代码部分时,构建成功

我已经看过解决方案,但无法让异步/等待代码的构建正常工作


有人能帮我吗?由于默认的eslint解析器不理解
async
wait
,因此在
eslint加载程序中发生了很多分析错误。您必须使用中所述的
babel eslint
。在eslint配置中添加:

"parser": "babel-eslint"
并安装
babel eslint

npm install --save-dev babel-eslint

谢谢,这就解决了问题。我对你的答案投了更高的票,但因为我是一个笨蛋,所以没有表现出来。