我的 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/