npm babel ES2015:在转换/输出JS文件中获取命令行

npm babel ES2015:在转换/输出JS文件中获取命令行,npm,ecmascript-6,babeljs,Npm,Ecmascript 6,Babeljs,我已经安装了npm(v4.4.4)、babel(v6.24.0)和babel preset 2015。 将ES6 JS转换为ES5时,所有运行正常…除了几个奇怪之处。也许有人能看出这个新手做错了什么 1) 我从npm运行babel(见下文),运行正常。我在package.JSON中添加了一些脚本条目以使其正常工作。 但是,不必要的奇怪…npm将命令插入到输出JS文件中。(见下文)是否有一个npm选项可以说,不要将命令放在输出文件中 然而……如果我用babel.cmd将input.JS复制到文件夹

我已经安装了npm(v4.4.4)、babel(v6.24.0)和babel preset 2015。 将ES6 JS转换为ES5时,所有运行正常…除了几个奇怪之处。也许有人能看出这个新手做错了什么

1) 我从npm运行babel(见下文),运行正常。我在package.JSON中添加了一些脚本条目以使其正常工作。 但是,不必要的奇怪…npm将命令插入到输出JS文件中。(见下文)是否有一个npm选项可以说,不要将命令放在输出文件中

然而……如果我用babel.cmd将input.JS复制到文件夹中并在那里运行,我会得到一个干净的output.JS。因此,看起来npm正在将命令行插入output.js文件中。 如何防止将npm命令写入output.js。(显然,我不想让我的JS文件与.bin文件共享一个文件夹)

2) 当我在项目文件夹的命令行中键入>babel时,我得到: 巴贝尔:不是命令

我希望这样。毕竟,我还没有将node_modules/.bin添加到我的PATH env var中。然而,我观看的每一个关于npm和babel的YouTube视频都是有效的。怎么用?似乎没有人编辑路径环境变量。我是否遗漏了什么

谢谢 弥尔顿

输入JS文件(INPUT.JS)

输出JS(TRANSPILED)文件(OUTPUT.JS)注意下面的前两行

> milton@1.0.0 babel C:\Projects1\01InstallReact4Dev
> babel.cmd "--presets" "es2015" "input.js"

"use strict";

function _classCallCheck(instance, Constructor) 
{ if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var House = function House(v) {
  _classCallCheck(this, House);
  this.name = v;
};
PACKAGE.JSON

"scripts": {
"babel": "babel.cmd",
"babelv": "babel.cmd -V",
"babelh": "babel.cmd -help"
}
命令

> npm run babel -- --presets es2015 input.js > output.js
再次感谢。
Milton.

您正在将stdout的输出重定向到文件
output.js
,其中包括显示的所有内容。您可以使用
--out file
-o
选项,而不是使用babel的标准输出。这将把输出写入指定的文件,而不是打印到标准输出(请参阅)

你的命令是:

npm run babel -- --presets es2015 input.js --out-file output.js
当我在项目文件夹的命令行中键入>babel时,我得到:babel:不是命令

您的shell路径中没有
节点\ u模块/.bin/
。您可以添加它或直接使用
/node\u modules/.bin/babel
运行它。但是,如果您在npm脚本中执行此操作,则不需要这样做,因为npm将自动查看
节点_modules/.bin/
,而不在您的路径中。在这种情况下,您可以定义以下脚本:

"scripts": {
  "build": "babel --presets es2015 input.js --out-file output.js"
}
然后您可以简单地运行:

npm run build

如果要传输多个文件,应使用
--out dir
而不是
--out file
,否则它们将连接到一个文件中。另请参见

为什么不在
npm
脚本本身中包含输入和输出fulename?如果你有很多文件,通常你会告诉巴贝尔编译一个完整的目录或者其他什么。npm静默选项可以解决问题1。npm运行babel-silent--presets es2015*.js--out dir buildThank U.将在周末完成这项工作,最后4项将在电视上播出。
npm run build