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

标签 node.js npm npm-cli

我的 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 包含新的语言语法。

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

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

npm run 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

关于node.js - 如何直接在命令行中运行 node/babel 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51530249/

相关文章:

javascript - 如何使用meteorhacks :npm package?调用这个wordcount函数

angularjs - Passport 身份验证成功但不重定向并给出 500 错误

node.js - 如何修复似乎无限循环的 npm?

javascript - Gulp watch 只执行一次任务

node.js - 通过nodejs安装Express时出错

node.js - 如何调用npm version(更新我自己的包的版本然后提交)

node.js - 全局安装精确依赖项的好方法

node.js - Mongoose 和 NodeJS 项目的文件结构

node.js - messages.sendMulticast 不是一个函数

javascript - Ionic Error Object(...) 不是 NativePageTransitions.fade 中的函数