生成文件:
node_modules: package.json ## Run npm install
@npm install
Run Code Online (Sandbox Code Playgroud)
为什么每次运行时都会make node_modules执行收据?npm installmake node_modules
我相信如果我的文件package.json不是比目录更新,则该配方不应该被执行node_modules。
@IsmailBadawi 在评论中提供的链接是这里的关键。
Make根据目标的上次修改时间 (mtime)确定目标是否已过期。然而,只有当添加/删除/重命名目录的直接子目录之一时(至少在类 Unix 系统上),目录才被视为已修改。
这对于您的情况来说是不够的。想象一下以下序列:
make第一次跑步。
mtime(node_modules) > mtime(package.json)。再次运行make。
更改 中的依赖版本package.json。
mtime(node_modules) < mtime(package.json)。再次运行make。
node_modules。mtime(node_modules)不受影响。再次运行make。
...永远如此...
您也许可以通过添加touch -m node_modules到您的食谱中来解决此问题。
| 归档时间: |
|
| 查看次数: |
812 次 |
| 最近记录: |