ParcelJs构建React项目时找不到'dict/dict.txt'文件求助
问题:Parcel运行
npm start时提示找不到dict.txt文件 我跟着教程在Google App Script中构建React项目,运行npm start时Parcel抛出如下错误:
Error: ENOENT: no such file or directory, open 'D:\websites\dict\dict.txt' at Object.openSync (node:fs:585:3) at Object.readFileSync (node:fs:453:35) at makeCompression (D:\websites\#Projects\print-bill\node_modules\lmdb\dist\index.cjs:2047:19) at Object.open (D:\websites\#Projects\print-bill\node_modules\lmdb\dist\index.cjs:2057:25) at new LMDBCache (D:\websites\#Projects\print-bill\node_modules\@parcel\cache\lib\LMDBCache.js:81:34) at resolveOptions (D:\websites\#Projects\print-bill\node_modules\@parcel\core\lib\resolveOptions.js:125:168) at async Parcel._init (D:\websites\#Projects\print-bill\node_modules\@parcel\core\lib\Parcel.js:218:27) at async Parcel.watch (D:\websites\#Projects\print-bill\node_modules\@parcel\core\lib\Parcel.js:315:7) at async run (D:\websites\#Projects\print-bill\node_modules\parcel\lib\cli.js:351:9) { errno: -4058, syscall: 'open', code: 'ENOENT', path: 'D:\\websites\\dict\\dict.txt' }
我的package.json文件内容如下:
{ "name": "print-bill", "version": "1.0.0", "description": "Simple Web App with Google App Script to generate and print bill", "scripts": { "g:init": "clasp create --title 'Print Bill' --rootDir ./app-script", "g:login": "clasp login", "g:logout": "clasp logout", "g:clone": "clasp clone {id} --rootDir ./app-script", "g:pull": "clasp pull", "g:push": "clasp push", "g:start": "clasp push --watch", "start": "parcel src/index.html --dist-dir ./app-script", "build": "parcel build src/index.html --dist-dir ./app-script" }, "keywords": [], "author": "TXHENG", "license": "ISC", "devDependencies": { "@types/google-apps-script": "^1.0.57", "clasp": "^1.0.0", "parcel": "^2.8.3" }, "dependencies": { "react": "^18.2.0", "react-dom": "^18.2.0", "react-router-dom": "^6.8.2" }, "targets": { "main": false } }
解决方案
- 确认文件路径:先检查
D:\websites\dict\dict.txt是否存在。如果不存在,手动创建一个空的dict.txt文件;如果路径错误,排查是否有环境变量或配置错误指向了这个位置。 - 清理Parcel缓存:Parcel的LMDB缓存可能异常,执行命令清理缓存:
Linux/macOS:
Windows(PowerShell):rm -rf .parcel-cacheRemove-Item -Recurse -Force .parcel-cache - 指定Parcel缓存目录:修改
package.json的启动脚本,把缓存目录指定到项目内部,避免访问外部路径:
先安装cross-env兼容多系统:
然后更新npm install cross-env --save-devstart脚本:"start": "cross-env PARCEL_CACHE_DIR=./.parcel-cache parcel src/index.html --dist-dir ./app-script", - 更新Parcel版本:当前使用的Parcel 2.8.3可能存在bug,尝试更新到最新稳定版:
npm install parcel@latest --save-dev
内容的提问来源于stack exchange,提问作者XH栩恒
相关产品推荐
相关产品推荐

