如何从 CLI 执行 es6 脚本

新手上路,请多包涵

我安装了最新的 NodeJS,对于任何 JavaScript 文件,我可以用 node myscript.js 执行它,但最近我正在学习 es6 和一些最新的语法,它只是在执行时弹出一些错误/异常。我尝试了 babel-cli,但似乎没有用,因为它用于将 es6 编译为 5 而不是用于命令行执行。

原文由 photosynthesis 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 304
2 个回答
  1. 要启用对 ES6 的支持,请使用 --harmony 标志:
 node --harmony myscript.js

这将在节点中启用可用的 ES6 语法。但请注意,它目前是 ES6 标准的一个有限子集(请参阅 兼容性表)。

2)要完全兼容,你必须使用 babel node

安装 @babel/node 以获得 babel-node 可执行文件,其工作方式与 Node.js 的 CLI 完全相同,只是它会在运行之前编译 ES6 代码。

 babel-node myscript.js

原文由 Dmitri Pavlutin 发布,翻译遵循 CC BY-SA 4.0 许可协议

#source1
https://dev.to/geekygeeky/get-started-with-es6-javascript-for-writing-nodejs-using-express-544h

#create  dir /project1
mkdir /project1
cd /project1

#install babel etc
npm i @babel/cli @babel/core @babel/node @babel/preset-env --save-dev
npm i @babel/plugin-proposal-class-properties @babel/plugin-proposal-object-rest-spread --save-dev
npm i rimraf nodemon --save-dev

#initialize project1
#https://philna.sh/blog/2019/01/10/how-to-start-a-node-js-project/
npm init

#edit /project1/package.json
nano /project1/package.json

 "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "rimraf dist && babel src --out-dir dist  --copy-files",
    "start": "node dist/app.js",
    "start:dev": "nodemon --exec babel-node src/app.js"
  },

#edit /project1/.babelrc
nano /project1/.babelrc

{  "presets": [
    ["@babel/env", {
      "targets": {
        "node": "current"
      }
    }]
  ],
  "plugins": [
    "@babel/plugin-proposal-class-properties",
    "@babel/plugin-proposal-object-rest-spread"
  ]
}

#install express
npm i express --save

#open a bash shell

#create /project1/src
mkdir src
cd src

#edit /project1/src/app.js
nano /project1/src/app.js

import express, { json } from 'express';
import items from './items';

const app = express();

app.use(json())

const PORT = process.env.PORT || 3000;

app.get('/', async (req, res) => {
    res.json({ status: true, message: "Our node.js app works" })
});

app.get('/items', (req, res) => {
    res.json({ status: true, message: "Fetched all items", data: items })
})

app.listen(PORT, () => console.log(`App listening at port ${PORT}`));

#edit /project1/src/items.js
nano items.js
const items = [
    {
        id: 1,
        username: "John doe",
        cartItems: ['football', 'ps5', 'cd-rom'],
    },
    {
        id: 2,
        username: "Jane doe",
        cartItems: ['mobile phone', 'game pad'],
    }
];

export default items;

#open another bash shell
#run server
cd /project1
npm run start:dev

#keep the server running

#check your app via browser
http://localhost:3000
http://localhost:3000/items

原文由 quine9997 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题