我正在使用cl-json
库,将{"main": "build/electron.js"}
条目添加到package.json
文件中。
这是我的尝试:
(let ((package-json-pathname (merge-pathnames *app-pathname* "package.json")))
(let
((new-json (with-open-file (package-json package-json-pathname :direction :input :if-does-not-exist :error)
(let ((decoded-package (json:decode-json package-json)))
(let ((main-entry (assoc :main decoded-package)))
(if (null main-entry)
(push (:main . "build/electron.js") decoded-package)
(setf (cdr main-entry) "build/electron.js"))
decoded-package)))))
(with-open-file (package-json package-json-pathname :direction :output :if-exists :supersede)
(json:encode-json new-json package-json))
)
)
代码在(push (:main . "build/electron.js") decoded-package)
行失败,抱怨(:main . "build/electron.js")
不是有效列表。哪一个很公平,但是使用此库将k / v条目添加到.json文件的正确方法是什么?