如何直接在命令行中 运行 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
您可以 运行 来自 node
的 app.js
文件,方法是先告诉它关于 babel-node
的信息:
node ./node_modules/.bin/babel-node app.js
在根项目中使用以下 .babelrc
文件
{"presets": ["@babel/preset-env"]}
在 babel 7 中你可以运行这个:
npx babel app.js
我的 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
.
因为 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
您可以 运行 来自 node
的 app.js
文件,方法是先告诉它关于 babel-node
的信息:
node ./node_modules/.bin/babel-node app.js
在根项目中使用以下 .babelrc
文件
{"presets": ["@babel/preset-env"]}
在 babel 7 中你可以运行这个:
npx babel app.js