美文网首页
用 bash 实现 npm init 的功能

用 bash 实现 npm init 的功能

作者: 恒星的背影 | 来源:发表于2017-10-16 16:52 被阅读0次

    npm init 的功能是让你在命令行里根据提示输入配置内容,然后创建一个package.json 文件,里面写入刚才输入的配置项,如下图所示

    npm init

    通过 bash 实现类似的功能,代码如下

    #!/bin/bash
    
    echo "This utility will walk you through creating a package.json file."
    
    # 名字
    echo -e "package name: \c"
    read name
    result="package name: $name"
    
    # 版本号
    echo -e "version: \c"
    read version
    result="$result, version: $version"
    
    # 是否ok
    echo "Is this ok? (y/n)"
    read choice
    if [ $choice = "y" ]
    then
        echo $result > package.json
        echo "success"
    else
        echo "Aborted."
    fi
    
    改进

    通过 ./hello.sh 运行似乎不够优雅,而且也不能像 npm init 可以全局运行。alias 命令可以用自定义字符串替换指定命令,所以在命令行下运行 alias hello='/c/Users/wang/practice/bash/hello.sh'(windows需要在git bash 中运行),此后就可以在全局运行hello命令,在所在文件夹下创建package.json文件。直接在命令行下使用alias只在当前会话起作用,为了一直能够使用自定义的命令,需要将命令写入~/.bashrc文件中。

    程序的缺陷

    配置项没有默认值,要求用户必须输入

    教训

    变量名和等号之间不能有空格,例如 res = "hello"
    给变量赋值的时候前面不能加$,例如 $res="hello"
    拼接字符串只能这样:result="$result, hello"

    参考

    Shell 教程 | 菜鸟教程
    添加 Bash 自定义命令 - Jasin Yip
    alias (命令) - 维基百科,自由的百科全书

    相关文章

      网友评论

          本文标题:用 bash 实现 npm init 的功能

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