Babel不起作用,返回CLI错误

时间:2016-11-24 14:14:29

标签: npm webpack command-line-interface babeljs

我使用以下命令在我的项目中本地安装了Babel:

npm install babel-cli babel-core babel-preset-es2015 --save-dev

这给了我package.json中的以下输出:

{
  "name": "my_project",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "build": "babel src -d lib"
  },
  "scripts": {
    "build": "babel --presets es2015 src -d lib"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel": "^6.5.2",
    "babel-cli": "^6.18.0",
    "babel-core": "^6.18.2",
    "babel-loader": "^6.2.8",
    "babel-preset-es2015": "^6.18.0",
    "webpack": "^1.13.3"
  },
  "dependencies": {
    "lodash": "^4.17.2"
  }
}

我不确定,但看起来它已成功安装。但是当我尝试运行npm run babel时,我得到了:

npm ERR! Darwin 15.3.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "babel"
npm ERR! node v7.0.0
npm ERR! npm  v4.0.2

npm ERR! missing script: babel
npm ERR! 
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

npm ERR! Please include the following file with any support request:
nam ERR!     /Path/To/My/Project/npm-debug.log

Babel为什么不工作?在package.json文件中包含:

2 个答案:

答案 0 :(得分:3)

所以你运行npm run babel

它说npm ERR! missing script: babel

可能是你的意思:npm run build

需要思考的两件事:

  1. npm run

      

    这会从包的“脚本”对象中运行任意命令。

  2. babel不是package.json中的脚本,而是JavaScript的转换器,可将ES6转换为ES5。

  3. 所以如果你运行npm run build,那将执行这里定义的build命令:

      "scripts": {
        "build": "babel src -d lib"
      },
    

    我还看到scripts对象存在重复

答案 1 :(得分:1)

运行已安装的npm可执行文件有多种方法。

最简单的方法是全局安装它。在您的情况下,您只需要在命令行中使用babel-cli。所以npm install -g babel-cli会这样做。

如果您只想在本地安装,babel上也可以使用node_modules/.bin/babel可执行文件。但肯定是为命令打字很多。

您尝试的另一种方法是使用npm-run-scripts。在这种情况下,您必须在package.json中定义脚本。您已经拥有build脚本,可以像npm run build一样运行。因此,对于npm run babel,您需要相同形式的脚本定义:

"scripts": {
    "build": "babel src -d lib",
    "babel": "babel script.js --out-file script-compiled.js" // For example
}
...

这主要用于为想要像构建脚本经常运行的命令一样使用简写。

您还可以使用以下语法为npm脚本提供其他参数:

npm run babel -- --presets es2015

请注意此处的其他--

还有另一种选择,您可以在全球范围内安装一次包,并从不同的项目链接到它:

npm install -g babel-cli并在您的项目目录中npm link babel-cli

最常见的方法是在全局和本地安装可执行程序包(命令行界面)的最简单方法。