生成文件:
node_modules: package.json ## Run npm install
@npm install
为什么make node_modules
每次运行npm install
时都会优先获取[{1}}?
我认为如果我的文件make node_modules
不是最近的目录package.json
,则不应该执行该配方。
答案 0 :(得分:1)
@IsmailBadawi在评论中提供的link是关键所在。
确定目标是否已过期based on its last-modified time (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
来解决此问题。