如何直接在命令行中 运行 node / babel 脚本?

how to run node / babel script directly in command line?

我的 package.json 看起来像:

{
  "name": "99-nodetest",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "babel-node --presets env app.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "babel-cli": "^6.26.0",
    "babel-preset-env": "latest"
  }
}

我想要 运行 的 js 脚本是 app.js。我不能 运行 它直接使用 node app.js 因为 app.js 包含新的语言语法。

因此我必须通过 babel 运行 它,使用 npm start,按照上面定义的启动脚本。这里没有问题。

我的问题是如何直接在命令行中运行cmd,可以吗? 类似于:

npm run babel-node --presets env app.js

node ./node_modules/babel-cli/bin/babel-node.js --presets env app.js

全局安装@babe/node-

npm i -g @babel/node

然后 babel-node 命令在您的终端中可用。所以,你可以 运行 -

babel-node --presets env app.js

顺便说一句,它应该只在开发环境中使用,从不推荐用于生产环境,因为它不必要地占用大量内存。

您可以使用 npx.

执行 npm 包二进制文件

因为 Babel 7 总是解析相对于本地项目文件夹的插件和预设,你必须在本地安装 @babel/preset-env 到项目中。

npm i -D @babel/preset-env

之后 babel-node 可以 运行 和 npx 而无需安装到项目中:

npx -p @babel/core -p @babel/node babel-node --presets @babel/preset-env app.js

如果您将 @babel/node 安装到项目中,npx 将首选项目本地版本。


如果是 Babel 6,可以使用以下命令:

npx babel-node --presets env app.js

Babel 节点已注册 bin,因此在安装时会在 node_modules/.bin 目录中生成可执行文件。

您只需输入即可运行。

node_modules/.bin/babel-node --presets env app.js

它完成与更长的 node 或备用 npx 版本相同的事情。

伟大的 gugley mugleys!这比本来应该的要难得多。

docs 见此处。 TLDR;

Babel > 7.0 版必须从命令行进入 package.json 到 运行。

npm install --save-dev @babel/core @babel/cli @babel/preset-env @babel/node 

npx babel-node --presets @babel/preset-env imports/test.js 

您可以 运行 来自 nodeapp.js 文件,方法是先告诉它关于 babel-node 的信息:

node ./node_modules/.bin/babel-node app.js

在根项目中使用以下 .babelrc 文件

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

在 babel 7 中你可以运行这个:

npx babel app.js