Chrome开发者工具的片段保存在哪个文件?

时间:2013-09-26 10:28:05

标签: google-chrome google-chrome-devtools code-snippets

据我所知,个人数据总是保存在配置文件路径中,可以在chrome:// version。

中找到

我在Chrome开发工具中添加了许多代码段,并希望备份它们。

但是我找不到一个文件来隐藏在这条路径下保存的数据。

有谁知道吗?请告诉我 。非常感谢!

5 个答案:

答案 0 :(得分:8)

从Chrome 47(左右)开始,不再通过localStorage提供代码段。此外,natchiketa的答案取决于localStorage,也不再有效。

以下是目前的技术:

获取片段

InspectorFrontendHost.getPreferences(_ => console.log(JSON.parse(_.scriptSnippets)))

设置代码段

InspectorFrontendHost.setPreference("scriptSnippets", JSON.stringify(yourSnippets))

这项技术是从讨论这一变化的github thread中提取的。

答案 1 :(得分:2)

  

编辑(2016年1月) 警告:我只能假设从最近的downvotes中再说不起作用了。我有机会时会更新。

TL; DR

  • 代码段存储为sqlite文件。
  • 您可以将它们提取为[{id: n, name: 'foo.js', content: "The script"}]
  • 的数组
  • OS X的说明如下

在OS X上,假设你安装了一个sqlite命令行客户端(我已经安装了一个,我不记得明确安装了一个),你会发现这样:

#如果您不知道Chrome配置文件是什么,您可能会使用配置文件1,因此:     cd~ / Library / Application \ Support / Google / Chrome / Profile \ 1 / Local \ Storage

在此目录中,您应该有一个名为chrome-devtools_devtools_0.localstorage的文件,如果是这样,您应该能够:

sqlite3 chrome-devtools_devtools_0.localstorage

...你应该在sqlite shell中,它的开头是这样的:

SQLite version 3.7.13 2012-07-17 17:46:21
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>

您可以.tables查看此文件中的表格:

sqlite> .tables
ItemTable

然后你可以这样做以查看该表中的列名:

PRAGMA table_info(ItemTable);

由于localStorage只是一个键/值存储,因此该表非常简单:

0|key|TEXT|0||0
1|value|BLOB|1||0

更有启发性的是看到关键名称:

select key from ItemTable;

你应该看到这样的事情:

fileSystemMapping
showAdvancedHeapSnapshotProperties
lastDockState
resourcesLargeRows
networkResourceTypeFilters
pauseOnCaughtException
showInheritedComputedStyleProperties
elementsPanelSplitViewState
filterBar-networkPanel-toggled
networkLogColumnsVisibility
networkPanelSplitViewState
sourcesPanelDebuggerSidebarSplitViewState
pauseOnExceptionEnabled
watchExpressions
breakpoints
consoleHistory
domBreakpoints
Inspector.drawerSplitViewState
InspectorView.splitViewState
WebInspector.Drawer.lastSelectedView
currentDockState
editorInDrawerSplitViewState
experiments
inspectorVersion
lastActivePanel
sourcesPanelSplitViewState
sourcesPanelNavigatorSplitViewState
scriptSnippets_lastIdentifier
previouslyViewedFiles
revision-history
revision-history|Script snippet #1|20267.2|1410876616909
scriptSnippets

这些摘录位于scriptsSnippets。当我开始这样做时,我没有任何片段,所以我没有看到这个键。创建我的第一个片段后,键出现了。接下来我做了:

select * from ItemTable where key = 'scriptSnippets';

Et瞧!

scriptSnippets|[{"id":"1","name":"SnipFoo.js","content":"/**\n * @license\n * Lo-Dash 2.4.1 (Custom Build) <http://lodash.com/>\n * Build: `lodash modern -o ./dist/lodash.js`\n * Copyright 2012-2013 The Dojo Foundation <http://dojofoundation.org/>\n * Based on Underscore.js 1.5.2 <http://underscorejs.org/LICENSE>\n * Copyright 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n * Available under MIT license <http://lodash.com/license>\n */\n;(function() {\n\n  /** Used as a safe reference for `undefined` in pre ES5 environments */\n  var undefined;\n\n  /** Used to pool arrays and objects used internally */\n  var arrayPool = [],\n      objectPool = [];\n\n  /** Used to generate unique IDs */\n  var idCounter = 0;\n\n  /** Used to prefix keys to avoid issues with `__proto__` and properties on `Object.prototype` */\n  var keyPrefix = +new Date + '';\n\n  /** Used as the size when optimizations are enabled for large arrays */\n  var largeArraySize = 75;\n\n  /** Used as the max size of the `arrayPool` and `objectPool` */\n  var maxPoolSize = 40;\n\n  /** Used to detect and test whitespace */\n  var whitespace = (\n    // whitespace\n    ' \\t\\x0B\\f\\xA0\\ufeff' +\n\n    // line terminators\n    '\\n\\r\\u2028\\u2029' +\n\n    // unicode category \"Zs\" space separators\n    '\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\

......等等。请注意,您会看到多个版本的代码段。我刚刚将lodash.js粘贴到我上面提到的新片段中,并且已经有两次了。

那么,如何实际获取脚本呢?好吧,一旦你得到value字段,那只是一个JSON数组,你有一个代码段idnamecontent。因此,从命令行创建一个SQL脚本以传递给sqlite3,如下所示:

echo "select value from ItemTable where key = 'scriptSnippets';" > showSnippets.txt

然后像这样提供该脚本:

sqlite3 chrome-devtools_devtools_0.localstorage < showSnippets.txt

如果你这样做,可以稍微漂亮一点:

sqlite3 chrome-devtools_devtools_0.localstorage < showSnippets.txt | python -m json.tool

答案 2 :(得分:1)

2019

在我的ubuntu18上,chromium片段保存在以下位置: ~/.config/chromium/Default/Preferences 作为单行json文件。

以上和Bookmarks是我备份的文件。

# this will print all the snippets as json
jq .devtools.preferences.scriptSnippets ~/.config/chromium/Default/Preferences

jq是一个很棒的命令行工具,用于查询和处理JSON文件。您可以从stedolan.github.io/jq/获得它。

答案 3 :(得分:0)

编辑:此答案已过期,片段不再保存在localstorage中。

请参阅 paulirish's answer

对于旧版本的Chrome,这可能有用。 它存储在C:\ Users \ Webdev \ AppData \ Local \ Google \ Chrome \ User Data \ Default \ Local Storage \ chrome-devtools_devtools_0.localstorage。 但我认为你不能从文件路径中查看它,

您可以通过执行以下操作来查看它。 打开devtools,然后前往chrome:// inspect,在“OTHER”标题下你应该看到你刚刚打开的devtools panel url,url以chrome-devtools:// dev开头。 单击检查链接检查它。 一个新的devtools窗口应该打开,在资源选项卡下,转到localstorage有一个 密钥称为scriptSnippets,这就是它保存的地方。只需复制并粘贴它或使用控制台面板预先修改输出。

希望这有帮助

答案 4 :(得分:0)

Mac

/Users/yourUserName/Library/Application Support/Google/Chrome/Default/Preferences

Chrome浏览器将您的摘要保存在“偏好设置”中。