Babel没有转译nodejs模块

时间:2020-10-09 13:43:19

标签: node.js webpack babeljs

在使用babel进行编译之后,我创建了一些nodejs模块,并尝试使用webpack捆绑它们。但是看来babel并没有在转译模块。

以下是我的项目结构:

> config
> connection
> controllers
> models
> node_modules
> routes
.babelrc
.env
.gitignore
chalk.console.js
package-lock.json
package.json
Procfile
index-bundle.js
index.js
webpack.config.js

以下是package.json

{
  "name": "index-service",
  "version": "0.1.0",
  "main": "index.js",
  "scripts": {
    "dev-run": "webpack && node index-bundle.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "license": "ISC",
  "dependencies": {
    "@babel/core": "7.11.6",
    "@babel/node": "7.10.5",
    "@babel/preset-env": "7.11.5",
    "babel-loader": "8.1.0",
    "body-parser": "1.19.0",
    "core-js": "3.6.5",
    "dotenv": "8.2.0",
    "express": "4.17.1",
    "pg": "8.4.0",
    "pg-hstore": "2.3.3",
    "regenerator-runtime": "0.13.7",
    "sequelize": "6.3.5",
    "webpack": "4.44.2",
    "webpack-node-externals": "2.5.2",
  },
  "devDependencies": {
    "chalk": "^4.1.0",
    "nodemon": "^2.0.4",
    "webpack-cli": "^3.3.12"
  }
}

以下是index.js

require('core-js/stable');
require('dotenv').config();
require('regenerator-runtime/runtime');

const chalk = require('./chalk.console');
const bodyParser = require('body-parser');
const express = require('express');


....


app.listen(PORT, () => {
    console.log(chalk.info(`Service running on port ${PORT}`));
});

以下是webpack.config.js

const nodeExternals = require('webpack-node-externals');

module.exports = {
    mode: "development",
    target: 'node',
    externals: [nodeExternals()],
    entry: './index.js',
    output: {
        path: __dirname,
        filename: 'index-bundle.js'
    },
    module: {
        rules: [
            {
                test: /.js$/,
                exclude: /node_modules/,
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets: ['@babel/preset-env']
                    }
                }
            }
        ]
    }
};

以下是.babelrc文件:

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

以下是chalk.console.js:

const chalk = require('chalk');

const error = chalk.redBright;
const success = chalk.greenBright;
const warning = chalk.hex('#ff3d00');
const info = chalk.yellowBright;


//This is where the error is occuring
export {
    error,
    success,
    warning,
    info
};

所以,每当我运行npm run dev-run

我收到以下错误

D:\NodeJS Services\Index\chalk.console.js:8
export {
^^^^^^

SyntaxError: Unexpected token 'export'

在我的另一个项目中,完全相同的项目结构和相同的.babelrc,webpack.config.js和package.json依赖项在我的另一个项目中工作,但在此项目中却没有。我想知道我哪里出错了

0 个答案:

没有答案