зеркало из https://github.com/microsoft/JSTSdocs.git
Added troubleshooting page
This commit is contained in:
Родитель
686bf0ed7c
Коммит
18830defbc
|
@ -87,3 +87,5 @@
|
|||
href: build/tsc.md
|
||||
- name: Building with NuGet
|
||||
href: build/nuget.md
|
||||
- name: Troubleshooting
|
||||
href: troubleshooting/index.md
|
||||
|
|
|
@ -0,0 +1,117 @@
|
|||
# Troubleshooting
|
||||
|
||||
## Language service is disabled
|
||||
You may get a bar along the top of the editor with text that reads "The JavaScript language
|
||||
service has been disabled for the following project(s)", as shown below.
|
||||
|
||||
<img src="../../images/jslsdisabledpopup.png" width="970px"/>
|
||||
|
||||
This limit is enabled by default to reduce the amount of memory that the JavaScript language
|
||||
service in Visual Studio 2017 might consume, as loading high volumes of JavaScript code is
|
||||
often unintentional, or suboptimal. See the section below on "Reducing the amount of source
|
||||
loaded" for ways to configure this.
|
||||
|
||||
## Excessive CPU and/or memory usage
|
||||
High CPU usage or memory usage by the Node.exe process that runs the JavaScript and TypeScript
|
||||
language service is often caused by the amount of code loaded that needs to be analyzed. As a
|
||||
first step, verify it is indeed the JavaScript/TypeScript language service process consuming the
|
||||
resources. This is best done using Task Manager (most easily launched with Ctrl + Shift + Esc),
|
||||
selecting "More details" in the bottom left if necessary, going to the "Details" tab, and adding
|
||||
the "Command line" column (right click on the column headings and click on "Select columns"). The
|
||||
language service process is the Node.exe process running the `tsserver.js` script, as shown below:
|
||||
|
||||
<img src="../../images/taskmanager.png" width="1800px"/>
|
||||
|
||||
If it is indeed the offending process, often the best way to reduce load is to reduce the amount
|
||||
of source code analyzed, as shown below.
|
||||
|
||||
## Reducing the amount of source loaded
|
||||
|
||||
By default, without a `tsconfig.json` file present, a Visual Studio 2017 project will create
|
||||
a TypeScript "context" that includes all the TypeScript files, and another for any JavaScript files. These
|
||||
contexts may be controlled somewhat with TypeScript settings in the Visual Studio project file, however
|
||||
for more control over the "contexts" and their settings, adding `tsconfig.json` files is recommended.
|
||||
|
||||
If one or more `tsconfig.json` files are present in a project, then a "context" will be created for
|
||||
each `tsconfig.json` file, and any files not belonging to one of these contexts, will be placed into
|
||||
a "Miscellaneous" context with default settings.
|
||||
|
||||
The language service works by statically analyzing the source code, and attempting to infer the shape
|
||||
and types of the code; this is what powers the editor completion lists, signature help, goto definition, etc.
|
||||
For TypeScript code, or JavaScript code with JsDoc annotations, this can be highly effective, however
|
||||
for many JavaScript files - especially large libraries - this results in a lot of work, with often limited
|
||||
results.
|
||||
|
||||
For some common JavaScript libraries, the langauge service can recognize the library files, and will
|
||||
automatically fetch the type definitions for it rather than process the JavaScript code directly. For
|
||||
some project structures however, this is insufficient, and assisting the language service via explicit
|
||||
configuration can be highly beneficial.
|
||||
|
||||
The simpliest way to avoid loading large Javascript libraries, but still provide good IntelliSense, is to
|
||||
have all such code under common directories which can be excluded from the context, and then listing the
|
||||
libraries to fetch and include the type definitions for explicitly. For example, in the below configuration,
|
||||
the large JavaScript libraries are included under the "js/lib" and "vendor" directories, so these have
|
||||
been listed under the "exclude" setting. The "typeAcquisition" configuration is then provided to fetch and
|
||||
include the definitions for the excluded libraries. (The other settings in this configuration file will be
|
||||
explained further below).
|
||||
|
||||
```json
|
||||
{
|
||||
"compilerOptions": {
|
||||
"allowJs": true,
|
||||
"noEmit": true,
|
||||
"disableSizeLimit": true,
|
||||
"skipLibCheck": true
|
||||
},
|
||||
"typeAcquisition": {
|
||||
"enable": true,
|
||||
"include": ["knockout", "underscore", "chartist"]
|
||||
},
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
"js/lib",
|
||||
"vendor"
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Other optimizations to reduce overhead
|
||||
|
||||
### Project settings
|
||||
|
||||
The above `tsconfig.json` file contains several other options that may be beneficial, these are:
|
||||
|
||||
- "disableSizeLimit": This will switch off the limit on the amount of JavaScript code loaded, which
|
||||
can cause the warning shown at the top of this page. Note however in doing so, there is a risk of
|
||||
"out of memory" errors in the language service if more code is loaded than can be processed.
|
||||
- "skipLibCheck": By default the language service will check the type definition files, ("*.d.ts" files).
|
||||
For a JavaScript only project, or projects using well-tested type definition files (such as
|
||||
those published via `@types` and fetched automatically), this can be of little value, so disabling
|
||||
this via this configuration option can be beneficial.
|
||||
- "noEmit": If the language service is not being used to "compile" the code (i.e. convert TypeScript
|
||||
into JavaScript, or convert ES2015 JavaScript into ES5 JavaScript), then this option should be set.
|
||||
|
||||
### Editor settings
|
||||
|
||||
Within Visual Studio 2017, the default behavior is to create the language service contexts for every
|
||||
project in a solution. In VS2017 Update 3 an option was added to only create the contexts for projects
|
||||
that have files open in the editor. This can significantly reduce memory usage, but does mean that
|
||||
projects without files open may contain errors that will not show in the editor while editing. (Though
|
||||
the errors will still be shown when performing a build).
|
||||
|
||||
To enable this option, select "Tools" / "Options" from the menu, navigate to "Text Editor" / "JavaScript/TypeScript"
|
||||
/ "Project", and check the setting "Only analyze projects which contain files opened in the editor".
|
||||
|
||||
<img src="../../images/toolsoptionsproject.png" width="940px"/>
|
||||
|
||||
## Gathering an ETW trace of detailed analysis
|
||||
|
||||
TODO: Detail where to obtain PerfView, and the command-line to use when running it.
|
||||
|
||||
## Useful links
|
||||
|
||||
The below pages go over the configuration options in more detail:
|
||||
|
||||
- https://www.typescriptlang.org/docs/handbook/tsconfig-json.html
|
||||
- https://www.typescriptlang.org/docs/handbook/compiler-options.html
|
||||
- https://www.typescriptlang.org/docs/handbook/declaration-files/consumption.html
|
|
@ -158,6 +158,9 @@
|
|||
<a href="build/nuget.html" name="" title="Building with NuGet">Building with NuGet</a>
|
||||
</li>
|
||||
</ul> </li>
|
||||
<li>
|
||||
<a href="troubleshooting/index.html" name="" title="Troubleshooting">Troubleshooting</a>
|
||||
</li>
|
||||
</ul> </div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -0,0 +1,202 @@
|
|||
<!DOCTYPE html>
|
||||
<!--[if IE]><![endif]-->
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<title>Troubleshooting </title>
|
||||
<meta name="viewport" content="width=device-width">
|
||||
<meta name="title" content="Troubleshooting ">
|
||||
<meta name="generator" content="docfx 2.26.1.0">
|
||||
|
||||
<link rel="shortcut icon" href="../../favicon.ico">
|
||||
<link rel="stylesheet" href="../../styles/docfx.vendor.css">
|
||||
<link rel="stylesheet" href="../../styles/docfx.css">
|
||||
<link rel="stylesheet" href="../../styles/main.css">
|
||||
<meta property="docfx:navrel" content="../../toc.html">
|
||||
<meta property="docfx:tocrel" content="../toc.html">
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body data-spy="scroll" data-target="#affix">
|
||||
<div id="wrapper">
|
||||
<header>
|
||||
|
||||
<nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
|
||||
<a class="navbar-brand" href="../../index.html">
|
||||
<img id="logo" class="svg" src="../../logo.svg" alt="">
|
||||
</a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse" id="navbar">
|
||||
<form class="navbar-form navbar-right" role="search" id="search">
|
||||
<div class="form-group">
|
||||
<input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<div class="subnav navbar navbar-default">
|
||||
<div class="container hide-when-search" id="breadcrumb">
|
||||
<ul class="breadcrumb">
|
||||
<li></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
<div role="main" class="container body-content hide-when-search">
|
||||
|
||||
<div class="sidenav hide-when-search">
|
||||
<a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
|
||||
<div class="sidetoggle collapse" id="sidetoggle">
|
||||
<div id="sidetoc"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="article row grid-right">
|
||||
<div class="col-md-10">
|
||||
<article class="content wrap" id="_content" data-uid="">
|
||||
<h1 id="troubleshooting">Troubleshooting</h1>
|
||||
|
||||
<h2 id="language-service-is-disabled">Language service is disabled</h2>
|
||||
<p>You may get a bar along the top of the editor with text that reads "The JavaScript language
|
||||
service has been disabled for the following project(s)", as shown below.</p>
|
||||
<p><img src="../../images/jslsdisabledpopup.png" width="970px"></p>
|
||||
<p>This limit is enabled by default to reduce the amount of memory that the JavaScript language
|
||||
service in Visual Studio 2017 might consume, as loading high volumes of JavaScript code is
|
||||
often unintentional, or suboptimal. See the section below on "Reducing the amount of source
|
||||
loaded" for ways to configure this.</p>
|
||||
<h2 id="excessive-cpu-andor-memory-usage">Excessive CPU and/or memory usage</h2>
|
||||
<p>High CPU usage or memory usage by the Node.exe process that runs the JavaScript and TypeScript
|
||||
language service is often caused by the amount of code loaded that needs to be analyzed. As a
|
||||
first step, verify it is indeed the JavaScript/TypeScript language service process consuming the
|
||||
resources. This is best done using Task Manager (most easily launched with Ctrl + Shift + Esc),
|
||||
selecting "More details" in the bottom left if necessary, going to the "Details" tab, and adding
|
||||
the "Command line" column (right click on the column headings and click on "Select columns"). The
|
||||
language service process is the Node.exe process running the <code>tsserver.js</code> script, as shown below:</p>
|
||||
<p><img src="../../images/taskmanager.png" width="1800px"></p>
|
||||
<p>If it is indeed the offending process, often the best way to reduce load is to reduce the amount
|
||||
of source code analyzed, as shown below.</p>
|
||||
<h2 id="reducing-the-amount-of-source-loaded">Reducing the amount of source loaded</h2>
|
||||
<p>By default, without a <code>tsconfig.json</code> file present, a Visual Studio 2017 project will create
|
||||
a TypeScript "context" that includes all the TypeScript files, and another for any JavaScript files. These
|
||||
contexts may be controlled somewhat with TypeScript settings in the Visual Studio project file, however
|
||||
for more control over the "contexts" and their settings, adding <code>tsconfig.json</code> files is recommended.</p>
|
||||
<p>If one or more <code>tsconfig.json</code> files are present in a project, then a "context" will be created for
|
||||
each <code>tsconfig.json</code> file, and any files not belonging to one of these contexts, will be placed into
|
||||
a "Miscellaneous" context with default settings.</p>
|
||||
<p>The language service works by statically analyzing the source code, and attempting to infer the shape
|
||||
and types of the code; this is what powers the editor completion lists, signature help, goto definition, etc.
|
||||
For TypeScript code, or JavaScript code with JsDoc annotations, this can be highly effective, however
|
||||
for many JavaScript files - especially large libraries - this results in a lot of work, with often limited
|
||||
results.</p>
|
||||
<p>For some common JavaScript libraries, the langauge service can recognize the library files, and will
|
||||
automatically fetch the type definitions for it rather than process the JavaScript code directly. For
|
||||
some project structures however, this is insufficient, and assisting the language service via explicit
|
||||
configuration can be highly beneficial.</p>
|
||||
<p>The simpliest way to avoid loading large Javascript libraries, but still provide good IntelliSense, is to
|
||||
have all such code under common directories which can be excluded from the context, and then listing the
|
||||
libraries to fetch and include the type definitions for explicitly. For example, in the below configuration,
|
||||
the large JavaScript libraries are included under the "js/lib" and "vendor" directories, so these have
|
||||
been listed under the "exclude" setting. The "typeAcquisition" configuration is then provided to fetch and
|
||||
include the definitions for the excluded libraries. (The other settings in this configuration file will be
|
||||
explained further below).</p>
|
||||
<pre><code class="lang-json">{
|
||||
"compilerOptions": {
|
||||
"allowJs": true,
|
||||
"noEmit": true,
|
||||
"disableSizeLimit": true,
|
||||
"skipLibCheck": true
|
||||
},
|
||||
"typeAcquisition": {
|
||||
"enable": true,
|
||||
"include": ["knockout", "underscore", "chartist"]
|
||||
},
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
"js/lib",
|
||||
"vendor"
|
||||
]
|
||||
}
|
||||
</code></pre><h2 id="other-optimizations-to-reduce-overhead">Other optimizations to reduce overhead</h2>
|
||||
<h3 id="project-settings">Project settings</h3>
|
||||
<p>The above <code>tsconfig.json</code> file contains several other options that may be beneficial, these are:</p>
|
||||
<ul>
|
||||
<li>"disableSizeLimit": This will switch off the limit on the amount of JavaScript code loaded, which
|
||||
can cause the warning shown at the top of this page. Note however in doing so, there is a risk of
|
||||
"out of memory" errors in the language service if more code is loaded than can be processed.</li>
|
||||
<li>"skipLibCheck": By default the language service will check the type definition files, ("*.d.ts" files).
|
||||
For a JavaScript only project, or projects using well-tested type definition files (such as
|
||||
those published via <code>@types</code> and fetched automatically), this can be of little value, so disabling
|
||||
this via this configuration option can be beneficial.</li>
|
||||
<li>"noEmit": If the language service is not being used to "compile" the code (i.e. convert TypeScript
|
||||
into JavaScript, or convert ES2015 JavaScript into ES5 JavaScript), then this option should be set.</li>
|
||||
</ul>
|
||||
<h3 id="editor-settings">Editor settings</h3>
|
||||
<p>Within Visual Studio 2017, the default behavior is to create the language service contexts for every
|
||||
project in a solution. In VS2017 Update 3 an option was added to only create the contexts for projects
|
||||
that have files open in the editor. This can significantly reduce memory usage, but does mean that
|
||||
projects without files open may contain errors that will not show in the editor while editing. (Though
|
||||
the errors will still be shown when performing a build). </p>
|
||||
<p>To enable this option, select "Tools" / "Options" from the menu, navigate to "Text Editor" / "JavaScript/TypeScript"
|
||||
/ "Project", and check the setting "Only analyze projects which contain files opened in the editor".</p>
|
||||
<p><img src="../../images/toolsoptionsproject.png" width="940px"></p>
|
||||
<h2 id="gathering-an-etw-trace-of-detailed-analysis">Gathering an ETW trace of detailed analysis</h2>
|
||||
<p>TODO: Detail where to obtain PerfView, and the command-line to use when running it.</p>
|
||||
<h2 id="useful-links">Useful links</h2>
|
||||
<p>The below pages go over the configuration options in more detail:</p>
|
||||
<ul>
|
||||
<li><a href="https://www.typescriptlang.org/docs/handbook/tsconfig-json.html">https://www.typescriptlang.org/docs/handbook/tsconfig-json.html</a></li>
|
||||
<li><a href="https://www.typescriptlang.org/docs/handbook/compiler-options.html">https://www.typescriptlang.org/docs/handbook/compiler-options.html</a></li>
|
||||
<li><a href="https://www.typescriptlang.org/docs/handbook/declaration-files/consumption.html">https://www.typescriptlang.org/docs/handbook/declaration-files/consumption.html</a></li>
|
||||
</ul>
|
||||
</article>
|
||||
</div>
|
||||
|
||||
<div class="hidden-sm col-md-2" role="complementary">
|
||||
<div class="sideaffix">
|
||||
<div class="contribution">
|
||||
<ul class="nav">
|
||||
<li>
|
||||
<a href="https://github.com/billti/jsdocs/blob/master/articles/troubleshooting/index.md/#L1" class="contribution-link">Improve this Doc</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
|
||||
<!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
|
||||
</nav>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<footer>
|
||||
<div class="grad-bottom"></div>
|
||||
<div class="footer">
|
||||
<div class="container">
|
||||
<span class="pull-right">
|
||||
<a href="#top">Back to top</a>
|
||||
</span>
|
||||
|
||||
<span>Copyright © 2015-2017 Microsoft<br>Generated by <strong>DocFX</strong></span>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript" src="../../styles/docfx.vendor.js"></script>
|
||||
<script type="text/javascript" src="../../styles/docfx.js"></script>
|
||||
<script type="text/javascript" src="../../styles/main.js"></script>
|
||||
</body>
|
||||
</html>
|
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 20 KiB |
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 41 KiB |
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 46 KiB |
|
@ -0,0 +1,661 @@
|
|||
{
|
||||
"homepages": [],
|
||||
"source_base_path": "C:/src/github/jsdocs",
|
||||
"xrefmap": "xrefmap.yml",
|
||||
"files": [
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "README.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "README.html",
|
||||
"hash": "8f/sTS2A1bo/XshGr0J/OA=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/build/index.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/build/index.html",
|
||||
"hash": "gaRZE7mNobJ+sdAmjs2qvg=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/build/nuget.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/build/nuget.html",
|
||||
"hash": "YOX2Fk+caniyxn5mVxKCVg=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/build/tsc.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/build/tsc.html",
|
||||
"hash": "BBbXlEOTJMMVdvdTjmQroQ=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/configuration/index.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/configuration/index.html",
|
||||
"hash": "scoX5fnsn2z2KZo5kXWVzg=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/configuration/msbuild.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/configuration/msbuild.html",
|
||||
"hash": "Bj67bjeAQPtOrnaNzQYxYg=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/configuration/tsconfig.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/configuration/tsconfig.html",
|
||||
"hash": "U+qHvV6tjRpDtQy2/bk13A=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/configuration/versioning.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/configuration/versioning.html",
|
||||
"hash": "1oUoHR/SWf28pr6rldI3Lw=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/debugging/index.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/debugging/index.html",
|
||||
"hash": "mHaMd6clD6BlQzK5gSWwzQ=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/debugging/sourcemaps.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/debugging/sourcemaps.html",
|
||||
"hash": "U6mNp1qlluMLy98n2Wkwmg=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/editor/formatting.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/editor/formatting.html",
|
||||
"hash": "Q+dMMwWSulObxXQGmoaf6w=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/editor/index.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/editor/index.html",
|
||||
"hash": "Gu4+VMSAWH8d07UUk2ozpw=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/editor/intellisense.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/editor/intellisense.html",
|
||||
"hash": "+ZCCZcrzAHl4kg8NaRcpSA=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/editor/linting.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/editor/linting.html",
|
||||
"hash": "S1GOD1CLkk4hDzuccFnMhg=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/editor/lists.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/editor/lists.html",
|
||||
"hash": "5K6WGOJHUsI0C1TbtI3kaw=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/editor/refactoring.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/editor/refactoring.html",
|
||||
"hash": "CQ9h2vEglHIuzEnHc8nFmQ=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/frameworks/angular.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/frameworks/angular.html",
|
||||
"hash": "/VWDnvpKUnqQYy95Cgz5lQ=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/frameworks/gulpwebpack.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/frameworks/gulpwebpack.html",
|
||||
"hash": "6zRhK9oUNjoXM89l0TQLDg=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/frameworks/index.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/frameworks/index.html",
|
||||
"hash": "FJNo7i8KF9FeWfbCIfs0rg=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/frameworks/jsx.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/frameworks/jsx.html",
|
||||
"hash": "1w4ghRhi7Zq9HdQs8VGsqQ=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/frameworks/vue.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/frameworks/vue.html",
|
||||
"hash": "4/+aazp761OJjKNx9bK79A=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/index.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/index.html",
|
||||
"hash": "FnUDdVIZ9UaZ5wB1NWVySA=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/nodejs/azure.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/nodejs/azure.html",
|
||||
"hash": "DbxCkdomzkrM0lOlPuR+Kw=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/nodejs/index.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/nodejs/index.html",
|
||||
"hash": "X0bep0TMGuQWzC7HYC0SYw=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/nodejs/interactivewindow.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/nodejs/interactivewindow.html",
|
||||
"hash": "xlGCoj8RYdcvHTztCsyveQ=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/nodejs/npm.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/nodejs/npm.html",
|
||||
"hash": "coElY50RY3hOm78CDqZCiw=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/nodejs/requirements.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/nodejs/requirements.html",
|
||||
"hash": "raha/Z73nal8dAqTHYSSCw=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/nodejs/taskexplorer.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/nodejs/taskexplorer.html",
|
||||
"hash": "iKPG5u3yVvcnROjvClCQdQ=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/nodejs/unittesting.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/nodejs/unittesting.html",
|
||||
"hash": "6orOm1PVuEox0fZQH6mRog=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/projects/aspnet/aspnetclassic.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/projects/aspnet/aspnetclassic.html",
|
||||
"hash": "U4e6ljQDsi01LF2gxTlaIw=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/projects/aspnet/aspnetcore.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/projects/aspnet/aspnetcore.html",
|
||||
"hash": "HUxZ6YXbZ+kITQhMr5YXsA=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/projects/aspnet/index.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/projects/aspnet/index.html",
|
||||
"hash": "QluciI3EgtaQ1TxqIwPZZg=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/projects/cordova.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/projects/cordova.html",
|
||||
"hash": "I+q/0Z3FLpa24WwK4NpbrQ=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/projects/index.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/projects/index.html",
|
||||
"hash": "RpYFfRooVYySlnKI+uIqVg=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/projects/nodejs.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/projects/nodejs.html",
|
||||
"hash": "9tjETcwnhyHQf52HnsnnLg=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/projects/openfolder.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/projects/openfolder.html",
|
||||
"hash": "thxGWwO/GzcRpB9/YOe2Pg=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/projects/uwp.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/projects/uwp.html",
|
||||
"hash": "voAQJV6S/3ziddMSioaBfQ=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Toc",
|
||||
"source_relative_path": "articles/toc.yml",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/toc.html",
|
||||
"hash": "X31bj/3yaJxmBtM+WIkkRw=="
|
||||
}
|
||||
},
|
||||
"is_incremental": false,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/troubleshooting/index.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/troubleshooting/index.html",
|
||||
"hash": "+2E6opmzd2EkKNMVCs1GKA=="
|
||||
}
|
||||
},
|
||||
"is_incremental": false,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/types/allowjs.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/types/allowjs.html",
|
||||
"hash": "gK53IFPynLirt+keOcRDfg=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/types/ata.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/types/ata.html",
|
||||
"hash": "fi2ctAJfDA6IfRlkiY4GVw=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/types/attypes.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/types/attypes.html",
|
||||
"hash": "Jj6L/VbIi0dKVxppvVjJJw=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/types/index.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/types/index.html",
|
||||
"hash": "wplMTn5vOsrJpnH5PdnVmQ=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "articles/types/jsdoc.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "articles/types/jsdoc.html",
|
||||
"hash": "+eRZHRbSq/E2DnNK1qBa3w=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Resource",
|
||||
"source_relative_path": "images/jslsdisabledpopup.png",
|
||||
"output": {
|
||||
"resource": {
|
||||
"relative_path": "images/jslsdisabledpopup.png"
|
||||
}
|
||||
},
|
||||
"is_incremental": false,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Resource",
|
||||
"source_relative_path": "images/taskmanager.png",
|
||||
"output": {
|
||||
"resource": {
|
||||
"relative_path": "images/taskmanager.png"
|
||||
}
|
||||
},
|
||||
"is_incremental": false,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Resource",
|
||||
"source_relative_path": "images/toolsoptionsproject.png",
|
||||
"output": {
|
||||
"resource": {
|
||||
"relative_path": "images/toolsoptionsproject.png"
|
||||
}
|
||||
},
|
||||
"is_incremental": false,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Resource",
|
||||
"source_relative_path": "images/tooltip.png",
|
||||
"output": {
|
||||
"resource": {
|
||||
"relative_path": "images/tooltip.png"
|
||||
}
|
||||
},
|
||||
"is_incremental": false,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Resource",
|
||||
"source_relative_path": "images/virtualproject.png",
|
||||
"output": {
|
||||
"resource": {
|
||||
"relative_path": "images/virtualproject.png"
|
||||
}
|
||||
},
|
||||
"is_incremental": false,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Conceptual",
|
||||
"source_relative_path": "index.md",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "index.html",
|
||||
"hash": "5RheSmtiRPukcqFSNJfWzQ=="
|
||||
}
|
||||
},
|
||||
"is_incremental": true,
|
||||
"version": ""
|
||||
},
|
||||
{
|
||||
"type": "Toc",
|
||||
"source_relative_path": "toc.yml",
|
||||
"output": {
|
||||
".html": {
|
||||
"relative_path": "toc.html",
|
||||
"hash": "2aZAzfypMbRePF/dmP9pjg=="
|
||||
}
|
||||
},
|
||||
"is_incremental": false,
|
||||
"version": ""
|
||||
}
|
||||
],
|
||||
"incremental_info": [
|
||||
{
|
||||
"status": {
|
||||
"can_incremental": true,
|
||||
"incrementalPhase": "build"
|
||||
},
|
||||
"processors": {
|
||||
"TocDocumentProcessor": {
|
||||
"can_incremental": false,
|
||||
"details": "Processor TocDocumentProcessor cannot suppport incremental build because the processor doesn't implement ISupportIncrementalDocumentProcessor interface.",
|
||||
"incrementalPhase": "build"
|
||||
},
|
||||
"RestApiDocumentProcessor": {
|
||||
"can_incremental": false,
|
||||
"details": "Processor RestApiDocumentProcessor cannot suppport incremental build because the processor doesn't implement ISupportIncrementalDocumentProcessor interface.",
|
||||
"incrementalPhase": "build"
|
||||
},
|
||||
"ResourceDocumentProcessor": {
|
||||
"can_incremental": false,
|
||||
"details": "Processor ResourceDocumentProcessor cannot suppport incremental build because the processor doesn't implement ISupportIncrementalDocumentProcessor interface.",
|
||||
"incrementalPhase": "build"
|
||||
},
|
||||
"ConceptualDocumentProcessor": {
|
||||
"can_incremental": true,
|
||||
"incrementalPhase": "build"
|
||||
},
|
||||
"ManagedReferenceDocumentProcessor": {
|
||||
"can_incremental": true,
|
||||
"incrementalPhase": "build"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"status": {
|
||||
"can_incremental": true,
|
||||
"details": "Can support incremental post processing.",
|
||||
"incrementalPhase": "postProcessing"
|
||||
},
|
||||
"processors": {}
|
||||
}
|
||||
],
|
||||
"version_info": {},
|
||||
"groups": [
|
||||
{
|
||||
"xrefmap": "xrefmap.yml"
|
||||
}
|
||||
]
|
||||
}
|
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 20 KiB |
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 41 KiB |
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 46 KiB |
Загрузка…
Ссылка в новой задаче