如何在命令行中直接运行 node / babel 脚本?
Posted
技术标签:
【中文标题】如何在命令行中直接运行 node / babel 脚本?【英文标题】:how to run node / babel script directly in command line? 【发布时间】:2019-01-02 22:37:58 【问题描述】:我的 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
【问题讨论】:
仅供参考(并制作链接):上述问题与my question here 【参考方案1】:在 babel 7 中你可以运行这个:
npx babel app.js
【讨论】:
会npx
(不像上面罗德里戈的V6答案)将所有需要的node_modules拉到缓存中吗? (因此做的不仅仅是即时编译+本地源代码的执行?因为我宁愿把自己限制在这个范围内)。 — 或者当本地文件 (app.js
) 作为参数时,情况并非如此?【参考方案2】:
node ./node_modules/babel-cli/bin/babel-node.js --presets env app.js
【讨论】:
node ./node_modules/babel-cli/bin/babel-node.js --presets env app.js 。注意:它实际上在 babel-cli 下。如果你改变你的答案,我会接受它 我最终留在了 Babel 6,而不是升级到 Babel 7,这样我就不必处理这种回归。 对于 2020 年以上阅读此文的任何人,Babel v7 的情况发生了很大变化!您可能需要寻找其他地方而不是这个接受的答案,它适用于 Babel 6!【参考方案3】:您可以从node
运行app.js
文件,首先告诉它babel-node
:
node ./node_modules/.bin/babel-node app.js
在根项目中使用以下.babelrc
文件
"presets": ["@babel/preset-env"]
【讨论】:
【参考方案4】:您可以使用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
【讨论】:
2019年:npx babel-node --presets @babel/preset-env app.js
@ArneJenssen 谢谢。更新了我的答案。不幸的是,使用 Babel 7 实际上比使用 Babel 6 更难【参考方案5】:
伟大的 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
【讨论】:
太好了,谢谢! "默认情况下,npx 会检查Babel 节点注册了一个bin
,因此在安装时会在node_modules/.bin
目录中生成一个可执行文件。
您只需键入即可运行它。
node_modules/.bin/babel-node --presets env app.js
与较长的node
或备用npx
版本完成相同的事情。
【讨论】:
【参考方案7】:全局安装@babe/node-
npm i -g @babel/node
然后 babel-node 命令在您的终端中可用。所以,你可以运行 -
babel-node --presets env app.js
顺便说一句,它应该只在开发环境中使用,从不推荐用于生产,因为它不必要地繁重且内存使用量很高。
【讨论】:
如果您只想运行快速测试而不更改项目的最佳解决方案。以上是关于如何在命令行中直接运行 node / babel 脚本?的主要内容,如果未能解决你的问题,请参考以下文章
在eclipse中直接运行servlet 如何配置tomcat
全局变量与局部变量解释,以下代码可直接复制到编译器中直接运行。
linux下的python脚本无法在windows下的IDLE环境中直接运行吗?请大侠指教!多谢多谢!!
C++ Openssl AES GCM 128bits代码示例,可wins10的visual studio 2017 中直接运行
超链接标签a的美化,点击图片文字还是图片都能够跳转至指定页面。以下内容可直接通过鼠标左键选取然后复制到编辑器中直接运行。