我使用this site上的代码为Windows aspnet + angularjs应用编写gulp文件。
我现在只运行样式,当我运行gulp时,我得到:
Error: ENOENT, no such file or directory 'C:\project\build\manifest-debug.json'
at Error (native)
at Object.fs.openSync (fs.js:502:18)
at Object.fs.writeFileSync (fs.js:1103:15)
at writeManifestFile (C:\project\node_modules\gulp-asset-manifest\index.js:30:8)
at resetManifestFile (C:\project\node_modules\gulp-asset-manifest\index.js:51:5)
at module.exports (C:\project\node_modules\gulp-asset-manifest\index.js:76:5)
at getManifest (C:\project\Gulpfile.js:97:12)
at Gulp.<anonymous> (C:\project\Gulpfile.js:126:15)
at module.exports (C:\project\node_modules\gulp\node_modules\orchestrator\lib\runTask.js:34:7)
at Gulp.Orchestrator._runTask (C:\project\node_modules\gulp\node_modules\orchestrator\index.js:273:3)
看C:\project\node_modules\gulp-asset-manifest\index.js:30:8
我看到了:
fs.writeFileSync(filename, JSON.stringify(data));
所以我在节点的REPL上运行了这个:
fs.writeFileSync('C:\\project\\build\\manifest-debug.json', 'hi');
文件已正确创建。
我尝试使用现有文件再次运行gulp并得到完全相同的错误。
我在index.js第30行之前添加了console.log(filename);
,我得到了:
./build/manifest-debug.json
所以我在同一文件夹上运行了fs.writeFileSync('./build/manifest-debug.json', 'hi');
REPL,它也有效。
不确定发生了什么。
我在禁用UAC的情况下运行所有内容,并在具有管理员权限的命令提示符下运行。
答案 0 :(得分:0)
问题是fs.writeFileSync需要存在路径。
在调用gulp-asset-manifest
时,./build
不存在,因为clean
任务删除了整个路径。