1

我正在从头开始构建一个反应yarn应用程序,而不是npm因为纱线比 npm 快。我没有使用create-react-app命令来创建我的反应应用程序,只是为了确保我从头开始做所有事情。

我有一个 webpack 文件,其中包含从webpack 站点复制的基本配置片段。

请参阅我babel-node用于运行我的项目,因为我import的节点server.js文件中有 ES6。

在下面的文件中,要告诉pm2使用babel-node而不是常规node,使用解释

包.json

 {
  "name": "advanced-react",
  "version": "1.0.0",
  "main": "lib/server.js",
  "author": "GopiGorantala",
  "license": "MIT",
  "scripts": {
    "dev": "pm2 start lib/server.js --watch --interpreter babel-node"
  },
  "babel": {
    "presets": [
      "react",
      "env",
      "stage-2"
    ]
  },
  "devDependencies": {
    "babel-eslint": "^10.0.1",
    "eslint": "^5.13.0",
    "eslint-plugin-react": "^7.12.4"
  },
  "dependencies": {
    "babel-preset-env": "^1.7.0",
    "babel-preset-react": "^6.24.1",
    "babel-preset-stage-2": "^6.24.1",
    "ejs": "^2.6.1",
    "express": "^4.16.4",
    "pm2": "^3.2.9"
  }
}

服务器.js

import express from 'express';
import config from './config';

const app = express();

app.use(express.static('public'));

app.set('view engine', 'ejs');

app.get('/', (req, res) => {
  res.render('index', {answer: 42});
});

app.listen(config.port, function listenHandler() {
  console.info(`running on ${config.port}`);
});

当我运行我的应用程序时yarn dev,我没有让服务器在线,而是我得到了errored

在此处输入图像描述

我试图检查日志yarn pm2 logs以检查错误,但我没有得到太多信息。请看下面的截图

在此处输入图像描述

注意:请看,我正在使用yarn add --dev命令添加我的包

问题:我收到spawn babel-node ENOENT错误消息。我怎样才能确保我不会遇到这种情况。

4

3 回答 3

3

我终于在链接的帮助下解决了这个问题

我必须babel-cli全局安装才能使pm2正确运行 babel-node..

在此处输入图像描述

于 2019-02-03T17:52:10.180 回答
1

并非所有 webpack 配置都适用于 jsx。WP 应该看起来像这样。

module.exports = {
entry: './src/index.js',
module: {
 rules: [
  {
    test: /\.(js|jsx)$/,
    exclude: /node_modules/,
    use: ['babel-loader']
  }
 ]
},
resolve: {
extensions: ['*', '.js', '.jsx']
},
output: {
path: __dirname + '/dist',
publicPath: '/',
filename: 'bundle.js'
},
devServer: {
contentBase: './dist'
}
};
于 2019-02-03T17:41:08.990 回答
1

如果你使用的是最新的 babel(^7.0.0),你应该这样安装 'babel-node':

sudo npm i -g @babel/node

不要通过这种方式安装,因为它只适用于 babel 6:

npm install -g babel-cli

文档看起来已经过时并且适合 babel 6 版本。

于 2019-08-22T11:39:44.703 回答