生成 babel-node ENOENT
spawn babel-node ENOENT
我正在使用 yarn
而不是 npm
从头开始构建一个 react 应用程序,因为 yarn 比 npm 快。我没有使用 create-react-app
命令来创建我的 React 应用程序,只是为了确保我从头开始做所有事情。
我有一个 webpack 文件,其中包含从 webpack site 复制的基本配置片段。
请看我正在使用 babel-node
到 运行 我的项目,因为我的节点 server.js
文件中有 ES6 import
。
在下面的文件中,要告诉 pm2
使用 babel-node
而不是常规 node
,使用 interpreter
package.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"
}
}
server.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
错误。我怎样才能确保我不 运行 参与其中。
并非所有 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'
}
};
在 link
的帮助下,我终于解决了这个问题
我必须全局安装 babel-cli
才能使 pm2 运行 babel-node 正确..
如果您使用的是最新的 babel(^7.0.0),您应该这样安装 'babel-node':
sudo npm i -g @babel/node
不要通过这种方式安装,因为它只适用于 babel 6:
npm install -g babel-cli
文档看起来已经过时并且适合 babel 6 版本。
我正在使用 yarn
而不是 npm
从头开始构建一个 react 应用程序,因为 yarn 比 npm 快。我没有使用 create-react-app
命令来创建我的 React 应用程序,只是为了确保我从头开始做所有事情。
我有一个 webpack 文件,其中包含从 webpack site 复制的基本配置片段。
请看我正在使用 babel-node
到 运行 我的项目,因为我的节点 server.js
文件中有 ES6 import
。
在下面的文件中,要告诉 pm2
使用 babel-node
而不是常规 node
,使用 interpreter
package.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"
}
}
server.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
错误。我怎样才能确保我不 运行 参与其中。
并非所有 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'
}
};
在 link
的帮助下,我终于解决了这个问题我必须全局安装 babel-cli
才能使 pm2 运行 babel-node 正确..
如果您使用的是最新的 babel(^7.0.0),您应该这样安装 'babel-node':
sudo npm i -g @babel/node
不要通过这种方式安装,因为它只适用于 babel 6:
npm install -g babel-cli
文档看起来已经过时并且适合 babel 6 版本。