npm命令浅析

7 篇文章 0 订阅
6 篇文章 0 订阅
  1. npm 脚本有一个非常强大的功能,就是可以使用 npm 的内部变量:
    1. 通过npm_package_前缀,npm脚本可以拿到package.json里面的字段;
        console.log(process.env.npm_package_name); // package.json内的name字段
        console.log(process.env.npm_package_version); // 1.2.5
    
    1. repository字段的type属性,可以通过npm_package_repository_type取到。
        "repository": {
            "type": "git",
            "url": "xxx"
          },
          scripts: {
            "view": "echo $npm_package_repository_type"
          }
    
    1. 常用脚本示例:
        // 删除目录
        "clean": "rimraf dist/*",
        
        // 本地搭建一个 HTTP 服务
        "serve": "http-server -p 9090 dist/",
        
        // 打开浏览器
        "open:dev": "opener http://localhost:9090",
        
        // 实时刷新
         "livereload": "live-reload --port 9091 dist/",
        
        // 构建 HTML 文件
        "build:html": "jade index.jade > dist/index.html",
        
        // 只要 CSS 文件有变动,就重新执行构建
        "watch:css": "watch 'npm run build:css' assets/styles/",
        
        // 只要 HTML 文件有变动,就重新执行构建
        "watch:html": "watch 'npm run build:html' assets/html",
        
        // 部署到 Amazon S3
        "deploy:prod": "s3-cli sync ./dist/ s3://example-com/prod-site/",
        
        // 构建 favicon
        "build:favicon": "node scripts/favicon.js",
    
  2. #!/usr/bin/env node 到底是什么?
    就是解决了不同的用户node路径不同的问题,可以让系统动态的去查找node来执行你的脚本文件。
  3. npm 脚本的原理非常简单。每当执行npm run,就会自动新建一个 Shell,在这个 Shell 里面执行指定的脚本命令。因此,只要是 Shell(一般是 Bash)可以运行的命令,就可以写在 npm 脚本里面。
    比较特别的是,npm run新建的这个 Shell,会将当前目录的node_modules/.bin子目录加入PATH变量,执行结束后,再将PATH变量恢复原样。
    这意味着,当前目录的node_modules/.bin子目录里面的所有脚本,都可以直接用脚本名调用,而不必加上路径。比如,当前项目的依赖里面有 Mocha,只要直接写mocha test就可以了。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值