美文网首页前端拾遗
npm scripts中命令行工具来源问题

npm scripts中命令行工具来源问题

作者: 就叫初九吧 | 来源:发表于2017-04-15 17:26 被阅读2次

    在package.json中有如下配置

     "scripts": {
            "test": "echo \"this is babel study \" && exit 1",
            "build": "babel src -d lib"
      }
    

    这里以 build中的 babel为例说明一下babel来自那个版本。
    npm会在node_modules目录下建一个名为 .bin 的目录

    babel_d1.png
    该目录存放的是软链接symlink
    babel-d2.png
    npm在将包安装到项目时,如果包是一个命令行工具,那么npm会在该目录为 
    工具创建一个链接到安装目录的软链接symlink
    

    npm在执行scripts的时候会将node_modules/.bin/ 临时添加到 PATH environment variable中去。
    所以,此处运行

    npm run build

    时babel使用的是安装到项目中的babel版本。
    这样做的好处是

    保证了在不同项目中使用同一个工具时,可以使用工具的不同版本

    参考
    https://firstdoit.com/no-need-for-globals-using-npm-dependencies-in-npm-scripts-3dfb478908

    更多内容可以参考http://www.ruanyifeng.com/blog/2016/10/npm_scripts.html

    相关文章

      网友评论

        本文标题:npm scripts中命令行工具来源问题

        本文链接:https://www.haomeiwen.com/subject/dxtoattx.html