【问题标题】:npx webpack Unexpected token :npx webpack 意外令牌:
【发布时间】:2019-03-15 00:08:22
【问题描述】:

我第一次尝试在 Windows 10 上将 Webpack 与 Node 和 Babel 一起使用(这也是我第一次使用 Babel)。我认为我已经正确配置了所有内容,但它给了我一个神秘的错误: 如果我这样做npx webpack --exec bable-node,也会发生同样的事情。

在我所读到的所有内容中,它给出了一个行号。我不确定是什么问题。

我将所有我认为与 Node 相关的文件放在一个名为“node”的文件夹中,并将所有其他文件放在一个名为“src”的文件夹中。我不知道这是否是导致问题的原因。这是文件夹结构:

/node
    /config
    /node_modules
    .babelrc
    master-updated.sh
    package-lock.json
    package.json
    server2.js
    webpack.config.js
/src
    /model (this is has a bunch of js files, but I removed the references to them for now)
    /public
        /html
        /srcipts
        /stylesheets
            /css
            /scss
        /vue
.gitignore

master-updated.sh 是一个用于响应 GitHub webhook 的 shell 脚本。

这里是server2.js的开头:

'use strict';

process.env.NODE_CONFIG_DIR = './node/config';

const config = require('config'),
    babel = require('babel-core'),

    ejs = require('ejs'),

    util = require('util'),

    express = require('express'),
    bodyParser = require('body-parser'),
    cors = require('cors'),
    moment = require('moment'),
    plaid = require('plaid'),
    mariadb = require('mariadb'),

    fs = require('fs'),
    http = require('http'),
    https = require('https'),

    session = require('express-session'),

    exec = require('child_process').exec;

const GOOGLE_AUTH_CLIENT_ID = '<REDACTED>';

const { OAuth2Client } = require('google-auth-library');
const googleAuthClient = new OAuth2Client(GOOGLE_AUTH_CLIENT_ID);

const APP_PORT = config.APP_PORT;

这是我的webpack.config.js 文件:


module.exports = {
    target: 'node',
    entry: {
        app: ['./server2.js']
    },
    output: {
        filename: 'server.js',
        path: path.resolve(__dirname, 'test')
    },
    module: {
        loaders: [
            test: '/\.js$/',
            loader: 'babel-loader',
            exclude: /node_modules/,
            query: {
                presets: ["@babel/preset-env"]
            }
        ]
    }
}

这里是.babelrc

{"presets": ["@babel/preset-env"]}

这里是package.json

{
  "name": "sage-savings",
  "version": "0.0.1",
  "description": "An app for easy budgeting.",
  "main": "server2.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack --config node/webpack.config.js",
    "start": "node node/server2.js"
  },
  "author": "Dakota Dalton",
  "repository": "https://github.com/1silvertiger/Sage",
  "license": "ISC",
  "dependencies": {
    "@types/express": "^4.16.1",
    "aws-sdk": "^2.397.0",
    "body-parser": "^1.18.3",
    "config": "^3.0.1",
    "cors": "^2.8.5",
    "ejs": "^2.5.9",
    "express": "4.16.x",
    "express-session": "^1.15.6",
    "google-auth-library": "^3.0.1",
    "mariadb": "^2.0.3",
    "moment": "^2.22.2",
    "mysql": "^2.16.0",
    "plaid": "2.x.x"
  },
  "devDependencies": {
    "@babel/core": "^7.3.4",
    "@babel/preset-env": "^7.3.4",
    "ajv": "^6.10.0",
    "babel-core": "^6.26.3",
    "babel-loader": "^8.0.5",
    "babel-preset-env": "^1.7.0",
    "typescript": "^3.3.3333",
    "webpack": "^4.29.6",
    "webpack-cli": "^3.2.3"
  }
}

【问题讨论】:

  • 请提供包括堆栈跟踪在内的整个错误。仅凭错误消息并不能告诉我们足够的信息。
  • @sdgluck 这就是整个错误。
  • 您分享的图片仅包含错误消息。该错误很可能还有一个 stack trace 在它下面(一堆带有文件名的行)。这就是我们所追求的:stack trace
  • 不幸的是,没有任何堆栈跟踪。这就是它如此神秘和令人沮丧的原因。我会更新截图给你看。
  • 查看我的更新答案 :-)

标签: node.js webpack babeljs


【解决方案1】:

如果您使用具有语法高亮功能的 IDE(例如 VS Code),则可以轻松识别这些语法问题。我所做的只是将您的配置复制到一个文件中并将其加载到 VS Code 中。

  1. 您错误地关闭了用于exclude 的正则表达式:

    exclude: /node_modules\,
    

    您必须使用正斜杠而不是反斜杠:

    exclude: /node_modules/
    
  2. 您还需要将加载器包装在对象文字中:

    loaders: [
        { // <= wrap in object literal
            test: '/\.js$/',
            loader: 'babel-loader',
            exclude: /node_modules/,
            query: {
                presets: ["@babel/preset-env"]
            }
        }
    ]
    

【讨论】:

  • @silvertiger 很公平 - 您可以暂时重新启用它以在下次捕获这些问题。我也会将这部分答案留给其他人。
  • 我会在记得如何找到它后立即重新启用它。
猜你喜欢
  • 1970-01-01
  • 2022-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-01
  • 2017-03-05
  • 2016-07-23
  • 2016-10-01
相关资源
最近更新 更多