【问题标题】:Running babel-cli from npm script not working从 npm 脚本运行 babel-cli 不起作用
【发布时间】:2016-04-01 17:25:23
【问题描述】:

我按照here 的指示安装了babel-cli。我将"build": "babel src -d lib" 添加到我要运行它的目录中的package.json 中。但是,在运行时,我收到此错误:

????  npm run build

> ipfs-readme-standard@1.0.0 build /Users/richard/src/ipfs-readme-standard
> babel src -d lib

src doesn't exist

npm ERR! Darwin 14.5.0
npm ERR! argv "/Users/richard/.nvm/versions/node/v5.0.0/bin/node" "/Users/richard/.nvm/versions/node/v5.0.0/bin/npm" "run" "build"
npm ERR! node v5.0.0
npm ERR! npm  v3.5.2
npm ERR! code ELIFECYCLE
npm ERR! ipfs-readme-standard@1.0.0 build: `babel src -d lib`
npm ERR! Exit status 2
npm ERR! 
npm ERR! Failed at the ipfs-readme-standard@1.0.0 build script 'babel src -d lib'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the ipfs-readme-standard package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     babel src -d lib
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs ipfs-readme-standard
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls ipfs-readme-standard
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/richard/src/ipfs-readme-standard/npm-debug.log

我很茫然。不应该生成 src 吗?我在 babeljs.io 上没有额外的步骤。

【问题讨论】:

    标签: node.js babeljs


    【解决方案1】:

    不应该生成 src 吗?

    这是包含您要转译的脚本的文件夹。如果它不存在,那么 babel 会抛出你发布的错误。

    另外,请注意链接到页面底部的内容:

    在 6.x 之前,Babel 默认启用了某些转换。但是,Babel 6.x 没有启用任何转换。您需要明确告诉它要运行哪些转换。最简单的方法是使用预设,例如 ES2015 预设。

    这意味着即使你创建了一个src 目录并在其中放置一个包含 ES6 代码的文件,Babel 也会愉快地运行,但输出将(几乎)与输入相同。


    这是一个如何使用 babel-cli 启动和运行的快速示例。

    创建一个项目,然后安装 babel-cli 包和 ES2015 预设:

    mkdir babeltest && cd babeltest
    touch package.json
    npm install babel-cli babel-preset-es2015 --save-dev
    

    下次编辑package.json:

    {
      "name": "my-project",
      "version": "1.0.0",
      "scripts": {
        "build": "babel src -d lib"
      },
      "scripts": {
        "build": "babel --presets es2015 src -d lib"
      },
      "devDependencies": {
        "babel-cli": "^6.0.0"
      }
    }
    

    请注意,npm 脚本中的命令与 babel homepage 中的命令略有不同,因为我们告诉它使用已安装的预设。

    接下来在src目录下创建一个文件:

    mkdir src && cd src
    touch main.js
    

    在 main.js 中添加:

    [1,2,3].map(x => x * x)
    

    然后通过 npm 运行 babel:

    npm run build
    

    并检查 lib/main.js 中的输出

    "use strict";
    
    [1, 2, 3].map(function (x) {
      return x * x;
    });
    

    【讨论】:

      【解决方案2】:

      当你的节点模块没有安装时,你也会得到这个错误,如果你从互联网上下载代码并立即尝试运行代码,它会抛出上述错误,只需运行

      npm install
      

      然后

      npm run build // 或其他命令应该可以工作

      【讨论】:

        【解决方案3】:

        如果有人仍在寻找解决方案,请检查 .babelrc 是否丢失 如果是这样,只需创建一个新的 .babelrc 文件并将上面的 sn-p 粘贴到其中。

        {
          "presets": ["es2015", "stage-0"]
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-12-21
          • 2017-04-21
          • 2021-07-30
          • 2016-07-06
          • 2013-09-18
          • 2021-01-04
          • 2018-02-15
          相关资源
          最近更新 更多