Merge branch 'master' into feature/webpack-cli-task

This commit is contained in:
Kenneth Chau 2019-09-04 10:38:53 -07:00 коммит произвёл GitHub
Родитель 2fb06e9e70 665163205b
Коммит c51987359d
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
59 изменённых файлов: 435 добавлений и 275 удалений

45
azure-pipelines.docs.yml Normal file
Просмотреть файл

@ -0,0 +1,45 @@
# Node.js
# Build a general Node.js project with npm.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/javascript
pr: none
trigger:
branches:
include:
- master
paths:
include:
- packages/documentation
pool:
vmImage: 'Ubuntu-16.04'
steps:
- task: NodeTool@0
inputs:
versionSpec: '10.x'
displayName: 'Install Node.js'
- script: |
git config user.email "kchau@microsoft.com"
git config user.name "kchau@microsoft.com"
git remote set-url origin https://$(github.user):$(github.pat)@github.com/microsoft/just.git
displayName: 'git config'
- script: |
yarn
displayName: 'yarn'
- script: |
yarn build:docs
displayName: 'build docs'
- script: |
git add docs
git commit -m "update docs"
git fetch origin
git merge origin/master
git push -u origin HEAD:master
displayName: 'publish docs'

Просмотреть файл

@ -4,7 +4,14 @@
# https://docs.microsoft.com/azure/devops/pipelines/languages/javascript
pr:
- master
branches:
include:
- master
paths:
exclude:
- docs
- packages/documentation
- README.md
pool:
vmImage: 'Ubuntu-16.04'

Просмотреть файл

@ -6,7 +6,14 @@
pr: none
trigger:
- master
branches:
include:
- master
paths:
exclude:
- docs
- packages/documentation
- README.md
pool:
vmImage: 'Ubuntu-16.04'

Просмотреть файл

@ -16,9 +16,9 @@
"@types/jest": "^23.3.13",
"@types/fs-extra": "^5.0.5",
"create-just": "1.1.5",
"just-scripts": ">=0.28.0 <1.0.0",
"just-stack-monorepo": "1.0.4",
"just-stack-single-lib": "1.0.2",
"just-scripts": ">=0.28.2 <1.0.0",
"just-stack-monorepo": "1.0.5",
"just-stack-single-lib": "1.0.3",
"just-stack-uifabric": "1.0.2",
"just-scripts-utils": ">=0.8.4 <1.0.0",
"fs-extra": "^7.0.1",

Просмотреть файл

@ -56,7 +56,7 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/args.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Command line arguments</h1></header><article><div><span><p><code>just-task</code> uses the best pirate themed command line argument library ever: <code>yargs</code>, matey! So, rigs get documented pretty much automatically. However, tasks can customize the arguments that are accepted. <code>just-task</code> exposes these via <code>this.argv</code> inside a task function.</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/args.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Command line arguments</h1></header><article><div><span><p><code>just-task</code> uses the best pirate themed command line argument library ever: <code>yargs</code>, matey! So, rigs get documented pretty much automatically. However, tasks can customize the arguments that are accepted. <code>just-task</code> exposes these via <code>this.argv</code> inside a task function.</p>
<h2><a class="anchor" aria-hidden="true" id="reading-arguments"></a><a href="#reading-arguments" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Reading arguments</h2>
<p>To read the arguments passed in from command line, use the <code>argv()</code> function provided by <code>yargs</code>.</p>
<pre><code class="hljs css language-js"><span class="hljs-keyword">const</span> { task, argv } = <span class="hljs-built_in">require</span>(<span class="hljs-string">'just-task'</span>);

Просмотреть файл

@ -56,7 +56,7 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/args.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Command line arguments</h1></header><article><div><span><p><code>just-task</code> uses the best pirate themed command line argument library ever: <code>yargs</code>, matey! So, rigs get documented pretty much automatically. However, tasks can customize the arguments that are accepted. <code>just-task</code> exposes these via <code>this.argv</code> inside a task function.</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/args.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Command line arguments</h1></header><article><div><span><p><code>just-task</code> uses the best pirate themed command line argument library ever: <code>yargs</code>, matey! So, rigs get documented pretty much automatically. However, tasks can customize the arguments that are accepted. <code>just-task</code> exposes these via <code>this.argv</code> inside a task function.</p>
<h2><a class="anchor" aria-hidden="true" id="reading-arguments"></a><a href="#reading-arguments" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Reading arguments</h2>
<p>To read the arguments passed in from command line, use the <code>argv()</code> function provided by <code>yargs</code>.</p>
<pre><code class="hljs css language-js"><span class="hljs-keyword">const</span> { task, argv } = <span class="hljs-built_in">require</span>(<span class="hljs-string">'just-task'</span>);

Просмотреть файл

@ -56,7 +56,7 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/composition.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Composition of tasks</h1></header><article><div><span><p>Once a project gets a bit more complex, a build step might consist of multiple sub tasks. This can be achieved with composition. This is the main reason <code>just-task</code> was made. It simplifies the composition of tasks.</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/composition.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Composition of tasks</h1></header><article><div><span><p>Once a project gets a bit more complex, a build step might consist of multiple sub tasks. This can be achieved with composition. This is the main reason <code>just-task</code> was made. It simplifies the composition of tasks.</p>
<h2><a class="anchor" aria-hidden="true" id="running-tasks-in-a-series"></a><a href="#running-tasks-in-a-series" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Running tasks in a series</h2>
<pre><code class="hljs css language-js"><span class="hljs-keyword">const</span> { task, series } = <span class="hljs-built_in">require</span>(<span class="hljs-string">'just-task'</span>);

Просмотреть файл

@ -56,7 +56,7 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/composition.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Composition of tasks</h1></header><article><div><span><p>Once a project gets a bit more complex, a build step might consist of multiple sub tasks. This can be achieved with composition. This is the main reason <code>just-task</code> was made. It simplifies the composition of tasks.</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/composition.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Composition of tasks</h1></header><article><div><span><p>Once a project gets a bit more complex, a build step might consist of multiple sub tasks. This can be achieved with composition. This is the main reason <code>just-task</code> was made. It simplifies the composition of tasks.</p>
<h2><a class="anchor" aria-hidden="true" id="running-tasks-in-a-series"></a><a href="#running-tasks-in-a-series" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Running tasks in a series</h2>
<pre><code class="hljs css language-js"><span class="hljs-keyword">const</span> { task, series } = <span class="hljs-built_in">require</span>(<span class="hljs-string">'just-task'</span>);

Просмотреть файл

@ -56,7 +56,7 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/condition.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Controlling Task Flow with Conditionals</h1></header><article><div><span><p>Sometimes a <code>just-task.js</code> includes tasks that are skipped depending on the arguments that are given. Use a <code>condition()</code> function to decide to run a task or to skip it.</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/condition.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Controlling Task Flow with Conditionals</h1></header><article><div><span><p>Sometimes a <code>just-task.js</code> includes tasks that are skipped depending on the arguments that are given. Use a <code>condition()</code> function to decide to run a task or to skip it.</p>
<h2><a class="anchor" aria-hidden="true" id="running-tasks-in-a-series"></a><a href="#running-tasks-in-a-series" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Running tasks in a series</h2>
<p>As we have seen, tasks can be run in a series.</p>
<pre><code class="hljs css language-js"><span class="hljs-keyword">const</span> { task, series } = <span class="hljs-built_in">require</span>(<span class="hljs-string">'just-task'</span>);

Просмотреть файл

@ -56,7 +56,7 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/condition.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Controlling Task Flow with Conditionals</h1></header><article><div><span><p>Sometimes a <code>just-task.js</code> includes tasks that are skipped depending on the arguments that are given. Use a <code>condition()</code> function to decide to run a task or to skip it.</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/condition.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Controlling Task Flow with Conditionals</h1></header><article><div><span><p>Sometimes a <code>just-task.js</code> includes tasks that are skipped depending on the arguments that are given. Use a <code>condition()</code> function to decide to run a task or to skip it.</p>
<h2><a class="anchor" aria-hidden="true" id="running-tasks-in-a-series"></a><a href="#running-tasks-in-a-series" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Running tasks in a series</h2>
<p>As we have seen, tasks can be run in a series.</p>
<pre><code class="hljs css language-js"><span class="hljs-keyword">const</span> { task, series } = <span class="hljs-built_in">require</span>(<span class="hljs-string">'just-task'</span>);

Просмотреть файл

@ -1,5 +1,5 @@
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Getting Started with Just · Just ____</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;code&gt;Just&lt;/code&gt; is a build task definition library. It stands on the shoulders of two excellent and well tested libraries: undertaker and yargs. We encourage developers to make &lt;code&gt;just&lt;/code&gt; available locally instead of installing &lt;code&gt;just&lt;/code&gt; as a global tool.&lt;/p&gt;
"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Getting Started with Just · Just ____"/><meta property="og:type" content="website"/><meta property="og:url" content="https://microsoft.github.io/just/"/><meta property="og:description" content="&lt;p&gt;&lt;code&gt;Just&lt;/code&gt; is a build task definition library. It stands on the shoulders of two excellent and well tested libraries: undertaker and yargs. We encourage developers to make &lt;code&gt;just&lt;/code&gt; available locally instead of installing &lt;code&gt;just&lt;/code&gt; as a global tool.&lt;/p&gt;
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Getting Started with Just · Just ____</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;code&gt;Just&lt;/code&gt; simplifies your life in managing build tasks. It stands on the shoulders of excellent and well tested libraries: undertaker, yargs, and plop.js. We encourage developers to make &lt;code&gt;just-scripts&lt;/code&gt; available locally instead of installing &lt;code&gt;just-scripts&lt;/code&gt; as a global tool.&lt;/p&gt;
"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Getting Started with Just · Just ____"/><meta property="og:type" content="website"/><meta property="og:url" content="https://microsoft.github.io/just/"/><meta property="og:description" content="&lt;p&gt;&lt;code&gt;Just&lt;/code&gt; simplifies your life in managing build tasks. It stands on the shoulders of excellent and well tested libraries: undertaker, yargs, and plop.js. We encourage developers to make &lt;code&gt;just-scripts&lt;/code&gt; available locally instead of installing &lt;code&gt;just-scripts&lt;/code&gt; as a global tool.&lt;/p&gt;
"/><meta name="twitter:card" content="summary"/><link rel="shortcut icon" href="/just/img/favicon.png"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script src="/just/js/scrollSpy.js"></script><link rel="stylesheet" href="/just/css/main.css"/><script src="/just/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/just/"><h2 class="headerTitle">Just ____</h2></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-internal"><li class="siteNavGroupActive siteNavItemActive"><a href="/just/docs/doc-start" target="_self">Documentation</a></li><li class=""><a href="https://github.com/microsoft/just" target="_self">GitHub</a></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line1"></div><div class="line2"></div><div class="line3"></div></div></div><h2><i></i><span>Basics</span></h2><div class="tocToggler" id="tocToggler"><i class="icon-toc"></i></div></div><div class="navGroups"><div class="navGroup"><h3 class="navGroupCategoryTitle">Basics</h3><ul class=""><li class="navListItem navListItemActive"><a class="navItem" href="/just/docs/doc-start">Getting Started</a></li><li class="navListItem"><a class="navItem" href="/just/docs/composition">Composition of tasks</a></li><li class="navListItem"><a class="navItem" href="/just/docs/logging">Logging</a></li><li class="navListItem"><a class="navItem" href="/just/docs/args">Command line arguments</a></li><li class="navListItem"><a class="navItem" href="/just/docs/condition">Conditionals</a></li><li class="navListItem"><a class="navItem" href="/just/docs/thunk">Higher Order Task Functions</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Scripts</h3><ul class=""><li class="navListItem"><a class="navItem" href="/just/docs/scripts">Just Scripts</a></li><li class="navListItem"><a class="navItem" href="/just/docs/scripts-ts">TypeScript</a></li><li class="navListItem"><a class="navItem" href="/just/docs/scripts-jest">Jest</a></li><li class="navListItem"><a class="navItem" href="/just/docs/scripts-tslint">TypeScript Lint</a></li><li class="navListItem"><a class="navItem" href="/just/docs/scripts-webpack">Webpack</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Stacks</h3><ul class=""><li class="navListItem"><a class="navItem" href="/just/docs/stacks">Just Stacks</a></li><li class="navListItem"><a class="navItem" href="/just/docs/stacks-single">Single Stack</a></li><li class="navListItem"><a class="navItem" href="/just/docs/stacks-monorepo">Monorepo Stack</a></li><li class="navListItem"><a class="navItem" href="/just/docs/stacks-upgrades">Upgrading Repos</a></li></ul></div></div></section></div><script>
var coll = document.getElementsByClassName('collapsible');
var checkActiveCategory = true;
@ -56,11 +56,11 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/doc-start.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Getting Started with Just</h1></header><article><div><span><p><code>Just</code> is a build task definition library. It stands on the shoulders of two excellent and well tested libraries: undertaker and yargs. We encourage developers to make <code>just</code> available locally instead of installing <code>just</code> as a global tool.</p>
<pre><code class="hljs css language-sh">npm i -D just-task
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/doc-start.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Getting Started with Just</h1></header><article><div><span><p><code>Just</code> simplifies your life in managing build tasks. It stands on the shoulders of excellent and well tested libraries: undertaker, yargs, and plop.js. We encourage developers to make <code>just-scripts</code> available locally instead of installing <code>just-scripts</code> as a global tool.</p>
<pre><code class="hljs css language-sh">npm i -D just-scripts
</code></pre>
<p>Place some task definitions inside <code>just-task.js</code> in your root folder (next to package.json):</p>
<pre><code class="hljs css language-js"><span class="hljs-keyword">const</span> { task, option, logger, argv } = <span class="hljs-built_in">require</span>(<span class="hljs-string">'just-task'</span>);
<p>Place some task definitions inside <code>just.config.js</code> in your root folder (next to package.json):</p>
<pre><code class="hljs css language-js"><span class="hljs-keyword">const</span> { task, option, logger, argv } = <span class="hljs-built_in">require</span>(<span class="hljs-string">'just-scripts'</span>);
option(<span class="hljs-string">'name'</span>, { <span class="hljs-attr">default</span>: <span class="hljs-string">'world'</span> });
@ -74,5 +74,5 @@ $ npx just sayhello --name me
</code></pre>
<p>That's all!</p>
<h2><a class="anchor" aria-hidden="true" id="next-steps"></a><a href="#next-steps" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Next Steps</h2>
<p>Learn how to <a href="/just/docs/composition">compose tasks in just-task.js</a></p>
<p>Learn how to <a href="/just/docs/composition">compose tasks in just</a></p>
</span></div></article></div><div class="docs-prevnext"><a class="docs-next button" href="/just/docs/composition"><span>Composition of tasks</span><span class="arrow-next"></span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#next-steps">Next Steps</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019</section></footer></div></body></html>

Просмотреть файл

@ -1,5 +1,5 @@
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Getting Started with Just · Just ____</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;code&gt;Just&lt;/code&gt; is a build task definition library. It stands on the shoulders of two excellent and well tested libraries: undertaker and yargs. We encourage developers to make &lt;code&gt;just&lt;/code&gt; available locally instead of installing &lt;code&gt;just&lt;/code&gt; as a global tool.&lt;/p&gt;
"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Getting Started with Just · Just ____"/><meta property="og:type" content="website"/><meta property="og:url" content="https://microsoft.github.io/just/"/><meta property="og:description" content="&lt;p&gt;&lt;code&gt;Just&lt;/code&gt; is a build task definition library. It stands on the shoulders of two excellent and well tested libraries: undertaker and yargs. We encourage developers to make &lt;code&gt;just&lt;/code&gt; available locally instead of installing &lt;code&gt;just&lt;/code&gt; as a global tool.&lt;/p&gt;
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Getting Started with Just · Just ____</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;code&gt;Just&lt;/code&gt; simplifies your life in managing build tasks. It stands on the shoulders of excellent and well tested libraries: undertaker, yargs, and plop.js. We encourage developers to make &lt;code&gt;just-scripts&lt;/code&gt; available locally instead of installing &lt;code&gt;just-scripts&lt;/code&gt; as a global tool.&lt;/p&gt;
"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Getting Started with Just · Just ____"/><meta property="og:type" content="website"/><meta property="og:url" content="https://microsoft.github.io/just/"/><meta property="og:description" content="&lt;p&gt;&lt;code&gt;Just&lt;/code&gt; simplifies your life in managing build tasks. It stands on the shoulders of excellent and well tested libraries: undertaker, yargs, and plop.js. We encourage developers to make &lt;code&gt;just-scripts&lt;/code&gt; available locally instead of installing &lt;code&gt;just-scripts&lt;/code&gt; as a global tool.&lt;/p&gt;
"/><meta name="twitter:card" content="summary"/><link rel="shortcut icon" href="/just/img/favicon.png"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script src="/just/js/scrollSpy.js"></script><link rel="stylesheet" href="/just/css/main.css"/><script src="/just/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/just/"><h2 class="headerTitle">Just ____</h2></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-internal"><li class="siteNavGroupActive siteNavItemActive"><a href="/just/docs/doc-start" target="_self">Documentation</a></li><li class=""><a href="https://github.com/microsoft/just" target="_self">GitHub</a></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line1"></div><div class="line2"></div><div class="line3"></div></div></div><h2><i></i><span>Basics</span></h2><div class="tocToggler" id="tocToggler"><i class="icon-toc"></i></div></div><div class="navGroups"><div class="navGroup"><h3 class="navGroupCategoryTitle">Basics</h3><ul class=""><li class="navListItem navListItemActive"><a class="navItem" href="/just/docs/doc-start">Getting Started</a></li><li class="navListItem"><a class="navItem" href="/just/docs/composition">Composition of tasks</a></li><li class="navListItem"><a class="navItem" href="/just/docs/logging">Logging</a></li><li class="navListItem"><a class="navItem" href="/just/docs/args">Command line arguments</a></li><li class="navListItem"><a class="navItem" href="/just/docs/condition">Conditionals</a></li><li class="navListItem"><a class="navItem" href="/just/docs/thunk">Higher Order Task Functions</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Scripts</h3><ul class=""><li class="navListItem"><a class="navItem" href="/just/docs/scripts">Just Scripts</a></li><li class="navListItem"><a class="navItem" href="/just/docs/scripts-ts">TypeScript</a></li><li class="navListItem"><a class="navItem" href="/just/docs/scripts-jest">Jest</a></li><li class="navListItem"><a class="navItem" href="/just/docs/scripts-tslint">TypeScript Lint</a></li><li class="navListItem"><a class="navItem" href="/just/docs/scripts-webpack">Webpack</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Stacks</h3><ul class=""><li class="navListItem"><a class="navItem" href="/just/docs/stacks">Just Stacks</a></li><li class="navListItem"><a class="navItem" href="/just/docs/stacks-single">Single Stack</a></li><li class="navListItem"><a class="navItem" href="/just/docs/stacks-monorepo">Monorepo Stack</a></li><li class="navListItem"><a class="navItem" href="/just/docs/stacks-upgrades">Upgrading Repos</a></li></ul></div></div></section></div><script>
var coll = document.getElementsByClassName('collapsible');
var checkActiveCategory = true;
@ -56,11 +56,11 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/doc-start.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Getting Started with Just</h1></header><article><div><span><p><code>Just</code> is a build task definition library. It stands on the shoulders of two excellent and well tested libraries: undertaker and yargs. We encourage developers to make <code>just</code> available locally instead of installing <code>just</code> as a global tool.</p>
<pre><code class="hljs css language-sh">npm i -D just-task
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/doc-start.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Getting Started with Just</h1></header><article><div><span><p><code>Just</code> simplifies your life in managing build tasks. It stands on the shoulders of excellent and well tested libraries: undertaker, yargs, and plop.js. We encourage developers to make <code>just-scripts</code> available locally instead of installing <code>just-scripts</code> as a global tool.</p>
<pre><code class="hljs css language-sh">npm i -D just-scripts
</code></pre>
<p>Place some task definitions inside <code>just-task.js</code> in your root folder (next to package.json):</p>
<pre><code class="hljs css language-js"><span class="hljs-keyword">const</span> { task, option, logger, argv } = <span class="hljs-built_in">require</span>(<span class="hljs-string">'just-task'</span>);
<p>Place some task definitions inside <code>just.config.js</code> in your root folder (next to package.json):</p>
<pre><code class="hljs css language-js"><span class="hljs-keyword">const</span> { task, option, logger, argv } = <span class="hljs-built_in">require</span>(<span class="hljs-string">'just-scripts'</span>);
option(<span class="hljs-string">'name'</span>, { <span class="hljs-attr">default</span>: <span class="hljs-string">'world'</span> });
@ -74,5 +74,5 @@ $ npx just sayhello --name me
</code></pre>
<p>That's all!</p>
<h2><a class="anchor" aria-hidden="true" id="next-steps"></a><a href="#next-steps" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Next Steps</h2>
<p>Learn how to <a href="/just/docs/composition">compose tasks in just-task.js</a></p>
<p>Learn how to <a href="/just/docs/composition">compose tasks in just</a></p>
</span></div></article></div><div class="docs-prevnext"><a class="docs-next button" href="/just/docs/composition"><span>Composition of tasks</span><span class="arrow-next"></span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#next-steps">Next Steps</a></li></ul></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019</section></footer></div></body></html>

Просмотреть файл

@ -56,7 +56,7 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/logging.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Logging</h1></header><article><div><span><p><code>just-task</code> is simple, but it is opinionated. One of the built-in capabilities of <code>just-task</code> is logging. We feel that this is an important enough of a feature to be available by the library.</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/logging.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Logging</h1></header><article><div><span><p><code>just-task</code> is simple, but it is opinionated. One of the built-in capabilities of <code>just-task</code> is logging. We feel that this is an important enough of a feature to be available by the library.</p>
<p>Typically, logging tasks look like the following:</p>
<p><img src="/just/docs/assets/typical.png" alt=""></p>
<h2><a class="anchor" aria-hidden="true" id="usage"></a><a href="#usage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Usage</h2>

Просмотреть файл

@ -56,7 +56,7 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/logging.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Logging</h1></header><article><div><span><p><code>just-task</code> is simple, but it is opinionated. One of the built-in capabilities of <code>just-task</code> is logging. We feel that this is an important enough of a feature to be available by the library.</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/logging.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Logging</h1></header><article><div><span><p><code>just-task</code> is simple, but it is opinionated. One of the built-in capabilities of <code>just-task</code> is logging. We feel that this is an important enough of a feature to be available by the library.</p>
<p>Typically, logging tasks look like the following:</p>
<p><img src="/just/docs/assets/typical.png" alt=""></p>
<h2><a class="anchor" aria-hidden="true" id="usage"></a><a href="#usage" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Usage</h2>

Просмотреть файл

@ -56,7 +56,7 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/scripts-jest.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Jest</h1></header><article><div><span><p>Jest is one of the most popular testing libraries in the Javascript ecosystem. It is also a preset supported out of the box inside the <code>just-scripts</code> library. Similar to the other presets, this task function assumes that you have a <code>jest.config.js</code> at the root of the project.</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/scripts-jest.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Jest</h1></header><article><div><span><p>Jest is one of the most popular testing libraries in the Javascript ecosystem. It is also a preset supported out of the box inside the <code>just-scripts</code> library. Similar to the other presets, this task function assumes that you have a <code>jest.config.js</code> at the root of the project.</p>
<pre><code class="hljs css language-tsx"><span class="hljs-comment">// just-task.js</span>
<span class="hljs-keyword">import</span> { jestTask } <span class="hljs-keyword">from</span> <span class="hljs-string">'just-scripts'</span>;
<span class="hljs-keyword">task</span>(<span class="hljs-string">'test'</span>, jestTask());

Просмотреть файл

@ -56,7 +56,7 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/scripts-jest.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Jest</h1></header><article><div><span><p>Jest is one of the most popular testing libraries in the Javascript ecosystem. It is also a preset supported out of the box inside the <code>just-scripts</code> library. Similar to the other presets, this task function assumes that you have a <code>jest.config.js</code> at the root of the project.</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/scripts-jest.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Jest</h1></header><article><div><span><p>Jest is one of the most popular testing libraries in the Javascript ecosystem. It is also a preset supported out of the box inside the <code>just-scripts</code> library. Similar to the other presets, this task function assumes that you have a <code>jest.config.js</code> at the root of the project.</p>
<pre><code class="hljs css language-tsx"><span class="hljs-comment">// just-task.js</span>
<span class="hljs-keyword">import</span> { jestTask } <span class="hljs-keyword">from</span> <span class="hljs-string">'just-scripts'</span>;
<span class="hljs-keyword">task</span>(<span class="hljs-string">'test'</span>, jestTask());

Просмотреть файл

@ -56,7 +56,7 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/scripts-ts.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">TypeScript</h1></header><article><div><span><p>TypeScript is a very popular compiler that allows developers to use modern ES6 features as well as a very mature typing system. The benefits are so great that it has become one of the first presets supported by the <code>just-scripts</code> library.</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/scripts-ts.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">TypeScript</h1></header><article><div><span><p>TypeScript is a very popular compiler that allows developers to use modern ES6 features as well as a very mature typing system. The benefits are so great that it has become one of the first presets supported by the <code>just-scripts</code> library.</p>
<p>Given a library with TypeScript source code, it might be desirable to have multiple output formats for different audiences. By default, the <code>tscTask()</code> function looks for the <code>tsconfig.json</code> present in the project root. The preset higher order function can take in an option that overrides compilation options. The TypeScript compiler options are passed to the <code>tsc.js</code> script.</p>
<p>A list of available options are located at the <a href="http://www.typescriptlang.org/docs/handbook/compiler-options.html">TypeScript documentation site</a>. The options passed into the preset function will be passed in as command line arguments as a string.</p>
<pre><code class="hljs css language-tsx"><span class="hljs-comment">// just-task.js</span>

Просмотреть файл

@ -56,7 +56,7 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/scripts-ts.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">TypeScript</h1></header><article><div><span><p>TypeScript is a very popular compiler that allows developers to use modern ES6 features as well as a very mature typing system. The benefits are so great that it has become one of the first presets supported by the <code>just-scripts</code> library.</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/scripts-ts.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">TypeScript</h1></header><article><div><span><p>TypeScript is a very popular compiler that allows developers to use modern ES6 features as well as a very mature typing system. The benefits are so great that it has become one of the first presets supported by the <code>just-scripts</code> library.</p>
<p>Given a library with TypeScript source code, it might be desirable to have multiple output formats for different audiences. By default, the <code>tscTask()</code> function looks for the <code>tsconfig.json</code> present in the project root. The preset higher order function can take in an option that overrides compilation options. The TypeScript compiler options are passed to the <code>tsc.js</code> script.</p>
<p>A list of available options are located at the <a href="http://www.typescriptlang.org/docs/handbook/compiler-options.html">TypeScript documentation site</a>. The options passed into the preset function will be passed in as command line arguments as a string.</p>
<pre><code class="hljs css language-tsx"><span class="hljs-comment">// just-task.js</span>

Просмотреть файл

@ -56,7 +56,7 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/scripts-tslint.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">TypeScript Lint</h1></header><article><div><span><p>TypeScript is a very popular compiler. But as the amount of code grows, developers need a way to keep the code looking consistent. <code>tslint</code> is the de facto linter for TS code.</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/scripts-tslint.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">TypeScript Lint</h1></header><article><div><span><p>TypeScript is a very popular compiler. But as the amount of code grows, developers need a way to keep the code looking consistent. <code>tslint</code> is the de facto linter for TS code.</p>
<pre><code class="hljs css language-tsx"><span class="hljs-comment">// just-task.js</span>
<span class="hljs-keyword">import</span> { tslintTask } <span class="hljs-keyword">from</span> <span class="hljs-string">'just-scripts'</span>;
<span class="hljs-keyword">task</span>(<span class="hljs-string">'tslint'</span>, tslintTask());

Просмотреть файл

@ -56,7 +56,7 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/scripts-tslint.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">TypeScript Lint</h1></header><article><div><span><p>TypeScript is a very popular compiler. But as the amount of code grows, developers need a way to keep the code looking consistent. <code>tslint</code> is the de facto linter for TS code.</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/scripts-tslint.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">TypeScript Lint</h1></header><article><div><span><p>TypeScript is a very popular compiler. But as the amount of code grows, developers need a way to keep the code looking consistent. <code>tslint</code> is the de facto linter for TS code.</p>
<pre><code class="hljs css language-tsx"><span class="hljs-comment">// just-task.js</span>
<span class="hljs-keyword">import</span> { tslintTask } <span class="hljs-keyword">from</span> <span class="hljs-string">'just-scripts'</span>;
<span class="hljs-keyword">task</span>(<span class="hljs-string">'tslint'</span>, tslintTask());

Просмотреть файл

@ -56,7 +56,7 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/scripts-webpack.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Webpack</h1></header><article><div><span><p>Webpack is the Javascript, CSS and asset bundler that powers some of the largest Web applications. Just Scripts comes with great integration with Webpack out of the box. All of the power of Webpack comes at the cost of complexity in its configuration. The bundler actually comes with great defaults. However, it takes some non-trivial amount of config to make it work with transpilers like TypeScript.</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/scripts-webpack.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Webpack</h1></header><article><div><span><p>Webpack is the Javascript, CSS and asset bundler that powers some of the largest Web applications. Just Scripts comes with great integration with Webpack out of the box. All of the power of Webpack comes at the cost of complexity in its configuration. The bundler actually comes with great defaults. However, it takes some non-trivial amount of config to make it work with transpilers like TypeScript.</p>
<p><code>just-scripts</code> exports a flexible Webpack <code>just-task</code> task function. Unlike <code>create-react-app</code>, <code>just-scripts</code> does not require ejecting to allow customizations of the Webpack configuration. <code>just-scripts</code> abstracts the complexity of the configuration with what is known as &quot;Overlays&quot;. For example, to add support of TypeScript transpilation, several parts of the configuration needs to be changed to support the various parts of building with TypeScript.</p>
<p>This task function will look for two files at the root of the project:</p>
<ul>

Просмотреть файл

@ -56,7 +56,7 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/scripts-webpack.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Webpack</h1></header><article><div><span><p>Webpack is the Javascript, CSS and asset bundler that powers some of the largest Web applications. Just Scripts comes with great integration with Webpack out of the box. All of the power of Webpack comes at the cost of complexity in its configuration. The bundler actually comes with great defaults. However, it takes some non-trivial amount of config to make it work with transpilers like TypeScript.</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/scripts-webpack.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Webpack</h1></header><article><div><span><p>Webpack is the Javascript, CSS and asset bundler that powers some of the largest Web applications. Just Scripts comes with great integration with Webpack out of the box. All of the power of Webpack comes at the cost of complexity in its configuration. The bundler actually comes with great defaults. However, it takes some non-trivial amount of config to make it work with transpilers like TypeScript.</p>
<p><code>just-scripts</code> exports a flexible Webpack <code>just-task</code> task function. Unlike <code>create-react-app</code>, <code>just-scripts</code> does not require ejecting to allow customizations of the Webpack configuration. <code>just-scripts</code> abstracts the complexity of the configuration with what is known as &quot;Overlays&quot;. For example, to add support of TypeScript transpilation, several parts of the configuration needs to be changed to support the various parts of building with TypeScript.</p>
<p>This task function will look for two files at the root of the project:</p>
<ul>

Просмотреть файл

@ -56,7 +56,7 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/scripts.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Just Scripts</h1></header><article><div><span><p>Unlike other build libraries, Just strives to be useful from the beginning. You can choose to write your own tasks that call other Node.js tools like TypeScript, jest, and webpack. However, Just includes some script functions to get you up and running immediately. The included tasks are enough to have a very productive environment without dictating a certain stack to be used with Just.</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/scripts.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Just Scripts</h1></header><article><div><span><p>Unlike other build libraries, Just strives to be useful from the beginning. You can choose to write your own tasks that call other Node.js tools like TypeScript, jest, and webpack. However, Just includes some script functions to get you up and running immediately. The included tasks are enough to have a very productive environment without dictating a certain stack to be used with Just.</p>
<blockquote>
<p>NOTE: even though <code>just-scripts</code> interacts with <code>typescript</code>, it does not take <code>typescript</code> as a dependency. It assumes that the developers will include that in their own projects. This gives <code>just-scripts</code> the flexibility of targeting many different versions of individual build tools without imposing a version on the consumers.</p>
</blockquote>

Просмотреть файл

@ -56,7 +56,7 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/scripts.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Just Scripts</h1></header><article><div><span><p>Unlike other build libraries, Just strives to be useful from the beginning. You can choose to write your own tasks that call other Node.js tools like TypeScript, jest, and webpack. However, Just includes some script functions to get you up and running immediately. The included tasks are enough to have a very productive environment without dictating a certain stack to be used with Just.</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/scripts.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Just Scripts</h1></header><article><div><span><p>Unlike other build libraries, Just strives to be useful from the beginning. You can choose to write your own tasks that call other Node.js tools like TypeScript, jest, and webpack. However, Just includes some script functions to get you up and running immediately. The included tasks are enough to have a very productive environment without dictating a certain stack to be used with Just.</p>
<blockquote>
<p>NOTE: even though <code>just-scripts</code> interacts with <code>typescript</code>, it does not take <code>typescript</code> as a dependency. It assumes that the developers will include that in their own projects. This gives <code>just-scripts</code> the flexibility of targeting many different versions of individual build tools without imposing a version on the consumers.</p>
</blockquote>

Просмотреть файл

@ -56,34 +56,34 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/stacks-monorepo.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Monorepo Stack</h1></header><article><div><span><p>When there are many highly related packages that are usually developed together, it makes sense to put them in the same repository. This ensures that those changes are atomic and can be released together in one go. When we put multiple packages inside a single repository, we call this a monorepo.</p>
<p>Just uses the <a href="https://rushjs.io">Rush</a> library to manage monorepos. This library handles linking lots of little packages together to ensure a sane developer experience. Rush is powerful, but it does not provide opinions about what kind of packages are scaffolded inside the monorepo. Just Stacks provides this for Rush monorepos.</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/stacks-monorepo.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Monorepo Stack</h1></header><article><div><span><p>When there are many highly related packages that are usually developed together, it makes sense to put them in the same repository. This ensures that those changes are atomic and can be released together in one go. When we put multiple packages inside a single repository, we call this a monorepo.</p>
<p>Just uses the <a href="https://lerna.js.org">Lerna</a> library to manage monorepos together with <a href="https://yarnpkg.com/lang/en/docs/workspaces/">yarn workspaces</a>. Those libraries handles linking monorepo packages together to ensure a sane developer experience. Lerna is powerful, but it does not provide opinions about what kind of packages are scaffolded inside the monorepo. Just Stacks provides this for the monorepo.</p>
<h1><a class="anchor" aria-hidden="true" id="prerequisites"></a><a href="#prerequisites" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Prerequisites</h1>
<p>Yarn is a prerequisite in using the monorepo stack. Install it like so:</p>
<pre><code class="hljs">npm <span class="hljs-keyword">install</span> -g yarn
</code></pre>
<h1><a class="anchor" aria-hidden="true" id="getting-started-with-the-monorepo"></a><a href="#getting-started-with-the-monorepo" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Getting Started with the MonoRepo</h1>
<p>After creating a monorepo, you can create packages, incrementally build all the packages, and even upgrade the packages according to changes from the templates by an <a href="/just/docs/stacks-upgrades">upgrade process</a>.</p>
<h1><a class="anchor" aria-hidden="true" id="installing-dependencies"></a><a href="#installing-dependencies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Installing dependencies</h1>
<p>Installing dependencies is the job of the Rush monorepo manager. By default node.js comes with the <code>npm</code> package manager. We can simply do this:</p>
<pre><code class="hljs">npm <span class="hljs-keyword">install</span>
<p>Installing dependencies is the job of Yarn. Install all dependencies and bootstrap the monorepo like so:</p>
<pre><code class="hljs"><span class="hljs-attribute">yarn</span>
</code></pre>
<p>We have hooked up Rush's installation process with the <code>npm install</code> script for convenience.</p>
<blockquote>
<p>Like the single package stacks, don't forget to run <code>npm install</code> after you do a <code>git pull</code></p>
<p>Like the single package stacks, don't forget to run <code>yarn</code> after you do a <code>git pull</code></p>
</blockquote>
<h1><a class="anchor" aria-hidden="true" id="building-monorepo"></a><a href="#building-monorepo" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Building monorepo</h1>
<p>To build all the packages, simply run the <code>build</code> npm script. Previously built packages will not be built. We call this incremental builds:</p>
<pre><code class="hljs">npm <span class="hljs-keyword">run</span><span class="bash"> build</span>
</code></pre>
<pre><code class="hljs"><span class="hljs-symbol">yarn</span> <span class="hljs-keyword">build
</span></code></pre>
<p>To develop with an innerloop experience, go inside the individual package and type:</p>
<pre><code class="hljs"><span class="hljs-built_in">cd</span> packages/foo
npm <span class="hljs-built_in">start</span>
yarn <span class="hljs-built_in">start</span>
</code></pre>
<h1><a class="anchor" aria-hidden="true" id="adding-a-new-package-into-the-repo"></a><a href="#adding-a-new-package-into-the-repo" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Adding a new package into the repo</h1>
<p>Rush actually requires a few steps to add a new package to its monorepo. <code>just-scripts</code> for monorepo fills this gap by providing a scaffolding experience similar to that of a <code>npm init just</code> call like when the monorepo was generated. Simply run this at the root of the monorepo:</p>
<pre><code class="hljs">npm run<span class="hljs-built_in"> add-package
</span></code></pre>
<p>After picking a package name and a package type, the new package will be placed under <code>packages/</code> directory. Make sure you run an update to make sure deps and symlink are established by Rush:</p>
<pre><code class="hljs">npm <span class="hljs-keyword">run</span><span class="bash"> update</span>
<p>Out of the box, the monorepo stack provides a mechanism to create new packages using the <a href="https://plopjs.com">plop.js</a> utility. Simply run this to generate a new package:</p>
<pre><code class="hljs"><span class="hljs-attribute">yarn gen</span>
</code></pre>
<h1><a class="anchor" aria-hidden="true" id="adding-updating-or-removing-a-dependency-to-a-package-inside-the-monorepo"></a><a href="#adding-updating-or-removing-a-dependency-to-a-package-inside-the-monorepo" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Adding, updating, or removing a dependency to a package inside the monorepo</h1>
<p>To modify a dependency after a package already exists inside the monorepo, modify the package's <code>package.json</code> to include the dependency. Then run the update command to retrieve the dependencies:</p>
<pre><code class="hljs">npm <span class="hljs-keyword">run</span><span class="bash"> update</span>
<p>After picking a package name and a package type, the new package will be placed under <code>packages/</code> directory. Make sure you update deps and symlink are established by Yarn:</p>
<pre><code class="hljs"><span class="hljs-attribute">yarn</span>
</code></pre>
</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/just/docs/stacks-single"><span class="arrow-prev"></span><span>Single Stack</span></a><a class="docs-next button" href="/just/docs/stacks-upgrades"><span>Upgrading Repos</span><span class="arrow-next"></span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019</section></footer></div></body></html>

Просмотреть файл

@ -56,34 +56,34 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/stacks-monorepo.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Monorepo Stack</h1></header><article><div><span><p>When there are many highly related packages that are usually developed together, it makes sense to put them in the same repository. This ensures that those changes are atomic and can be released together in one go. When we put multiple packages inside a single repository, we call this a monorepo.</p>
<p>Just uses the <a href="https://rushjs.io">Rush</a> library to manage monorepos. This library handles linking lots of little packages together to ensure a sane developer experience. Rush is powerful, but it does not provide opinions about what kind of packages are scaffolded inside the monorepo. Just Stacks provides this for Rush monorepos.</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/stacks-monorepo.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Monorepo Stack</h1></header><article><div><span><p>When there are many highly related packages that are usually developed together, it makes sense to put them in the same repository. This ensures that those changes are atomic and can be released together in one go. When we put multiple packages inside a single repository, we call this a monorepo.</p>
<p>Just uses the <a href="https://lerna.js.org">Lerna</a> library to manage monorepos together with <a href="https://yarnpkg.com/lang/en/docs/workspaces/">yarn workspaces</a>. Those libraries handles linking monorepo packages together to ensure a sane developer experience. Lerna is powerful, but it does not provide opinions about what kind of packages are scaffolded inside the monorepo. Just Stacks provides this for the monorepo.</p>
<h1><a class="anchor" aria-hidden="true" id="prerequisites"></a><a href="#prerequisites" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Prerequisites</h1>
<p>Yarn is a prerequisite in using the monorepo stack. Install it like so:</p>
<pre><code class="hljs">npm <span class="hljs-keyword">install</span> -g yarn
</code></pre>
<h1><a class="anchor" aria-hidden="true" id="getting-started-with-the-monorepo"></a><a href="#getting-started-with-the-monorepo" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Getting Started with the MonoRepo</h1>
<p>After creating a monorepo, you can create packages, incrementally build all the packages, and even upgrade the packages according to changes from the templates by an <a href="/just/docs/stacks-upgrades">upgrade process</a>.</p>
<h1><a class="anchor" aria-hidden="true" id="installing-dependencies"></a><a href="#installing-dependencies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Installing dependencies</h1>
<p>Installing dependencies is the job of the Rush monorepo manager. By default node.js comes with the <code>npm</code> package manager. We can simply do this:</p>
<pre><code class="hljs">npm <span class="hljs-keyword">install</span>
<p>Installing dependencies is the job of Yarn. Install all dependencies and bootstrap the monorepo like so:</p>
<pre><code class="hljs"><span class="hljs-attribute">yarn</span>
</code></pre>
<p>We have hooked up Rush's installation process with the <code>npm install</code> script for convenience.</p>
<blockquote>
<p>Like the single package stacks, don't forget to run <code>npm install</code> after you do a <code>git pull</code></p>
<p>Like the single package stacks, don't forget to run <code>yarn</code> after you do a <code>git pull</code></p>
</blockquote>
<h1><a class="anchor" aria-hidden="true" id="building-monorepo"></a><a href="#building-monorepo" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Building monorepo</h1>
<p>To build all the packages, simply run the <code>build</code> npm script. Previously built packages will not be built. We call this incremental builds:</p>
<pre><code class="hljs">npm <span class="hljs-keyword">run</span><span class="bash"> build</span>
</code></pre>
<pre><code class="hljs"><span class="hljs-symbol">yarn</span> <span class="hljs-keyword">build
</span></code></pre>
<p>To develop with an innerloop experience, go inside the individual package and type:</p>
<pre><code class="hljs"><span class="hljs-built_in">cd</span> packages/foo
npm <span class="hljs-built_in">start</span>
yarn <span class="hljs-built_in">start</span>
</code></pre>
<h1><a class="anchor" aria-hidden="true" id="adding-a-new-package-into-the-repo"></a><a href="#adding-a-new-package-into-the-repo" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Adding a new package into the repo</h1>
<p>Rush actually requires a few steps to add a new package to its monorepo. <code>just-scripts</code> for monorepo fills this gap by providing a scaffolding experience similar to that of a <code>npm init just</code> call like when the monorepo was generated. Simply run this at the root of the monorepo:</p>
<pre><code class="hljs">npm run<span class="hljs-built_in"> add-package
</span></code></pre>
<p>After picking a package name and a package type, the new package will be placed under <code>packages/</code> directory. Make sure you run an update to make sure deps and symlink are established by Rush:</p>
<pre><code class="hljs">npm <span class="hljs-keyword">run</span><span class="bash"> update</span>
<p>Out of the box, the monorepo stack provides a mechanism to create new packages using the <a href="https://plopjs.com">plop.js</a> utility. Simply run this to generate a new package:</p>
<pre><code class="hljs"><span class="hljs-attribute">yarn gen</span>
</code></pre>
<h1><a class="anchor" aria-hidden="true" id="adding-updating-or-removing-a-dependency-to-a-package-inside-the-monorepo"></a><a href="#adding-updating-or-removing-a-dependency-to-a-package-inside-the-monorepo" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Adding, updating, or removing a dependency to a package inside the monorepo</h1>
<p>To modify a dependency after a package already exists inside the monorepo, modify the package's <code>package.json</code> to include the dependency. Then run the update command to retrieve the dependencies:</p>
<pre><code class="hljs">npm <span class="hljs-keyword">run</span><span class="bash"> update</span>
<p>After picking a package name and a package type, the new package will be placed under <code>packages/</code> directory. Make sure you update deps and symlink are established by Yarn:</p>
<pre><code class="hljs"><span class="hljs-attribute">yarn</span>
</code></pre>
</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/just/docs/stacks-single"><span class="arrow-prev"></span><span>Single Stack</span></a><a class="docs-next button" href="/just/docs/stacks-upgrades"><span>Upgrading Repos</span><span class="arrow-next"></span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019</section></footer></div></body></html>

Просмотреть файл

@ -1,5 +1,5 @@
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Single Stack · Just ____</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;The simplest kind of projects are the single package repositories. Out of the box, &lt;code&gt;just&lt;/code&gt; can create a single package library or a batteries-included web application. The generated repository will use the &lt;code&gt;just-task&lt;/code&gt; library to manage its build definitions. You can customize the build task flow by editing the &lt;code&gt;just-task.js&lt;/code&gt; at the root of the generated repository.&lt;/p&gt;
"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Single Stack · Just ____"/><meta property="og:type" content="website"/><meta property="og:url" content="https://microsoft.github.io/just/"/><meta property="og:description" content="&lt;p&gt;The simplest kind of projects are the single package repositories. Out of the box, &lt;code&gt;just&lt;/code&gt; can create a single package library or a batteries-included web application. The generated repository will use the &lt;code&gt;just-task&lt;/code&gt; library to manage its build definitions. You can customize the build task flow by editing the &lt;code&gt;just-task.js&lt;/code&gt; at the root of the generated repository.&lt;/p&gt;
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Single Stack · Just ____</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;The simplest kind of projects are the single package repositories. Out of the box, &lt;code&gt;just&lt;/code&gt; can create a single package library or a batteries-included web application. The generated repository will use the &lt;code&gt;just&lt;/code&gt; library to manage its build definitions. You can customize the build task flow by editing the &lt;code&gt;just.config.js&lt;/code&gt; at the root of the generated repository.&lt;/p&gt;
"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Single Stack · Just ____"/><meta property="og:type" content="website"/><meta property="og:url" content="https://microsoft.github.io/just/"/><meta property="og:description" content="&lt;p&gt;The simplest kind of projects are the single package repositories. Out of the box, &lt;code&gt;just&lt;/code&gt; can create a single package library or a batteries-included web application. The generated repository will use the &lt;code&gt;just&lt;/code&gt; library to manage its build definitions. You can customize the build task flow by editing the &lt;code&gt;just.config.js&lt;/code&gt; at the root of the generated repository.&lt;/p&gt;
"/><meta name="twitter:card" content="summary"/><link rel="shortcut icon" href="/just/img/favicon.png"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script src="/just/js/scrollSpy.js"></script><link rel="stylesheet" href="/just/css/main.css"/><script src="/just/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/just/"><h2 class="headerTitle">Just ____</h2></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-internal"><li class="siteNavGroupActive"><a href="/just/docs/doc-start" target="_self">Documentation</a></li><li class=""><a href="https://github.com/microsoft/just" target="_self">GitHub</a></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line1"></div><div class="line2"></div><div class="line3"></div></div></div><h2><i></i><span>Stacks</span></h2><div class="tocToggler" id="tocToggler"><i class="icon-toc"></i></div></div><div class="navGroups"><div class="navGroup"><h3 class="navGroupCategoryTitle">Basics</h3><ul class=""><li class="navListItem"><a class="navItem" href="/just/docs/doc-start">Getting Started</a></li><li class="navListItem"><a class="navItem" href="/just/docs/composition">Composition of tasks</a></li><li class="navListItem"><a class="navItem" href="/just/docs/logging">Logging</a></li><li class="navListItem"><a class="navItem" href="/just/docs/args">Command line arguments</a></li><li class="navListItem"><a class="navItem" href="/just/docs/condition">Conditionals</a></li><li class="navListItem"><a class="navItem" href="/just/docs/thunk">Higher Order Task Functions</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Scripts</h3><ul class=""><li class="navListItem"><a class="navItem" href="/just/docs/scripts">Just Scripts</a></li><li class="navListItem"><a class="navItem" href="/just/docs/scripts-ts">TypeScript</a></li><li class="navListItem"><a class="navItem" href="/just/docs/scripts-jest">Jest</a></li><li class="navListItem"><a class="navItem" href="/just/docs/scripts-tslint">TypeScript Lint</a></li><li class="navListItem"><a class="navItem" href="/just/docs/scripts-webpack">Webpack</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Stacks</h3><ul class=""><li class="navListItem"><a class="navItem" href="/just/docs/stacks">Just Stacks</a></li><li class="navListItem navListItemActive"><a class="navItem" href="/just/docs/stacks-single">Single Stack</a></li><li class="navListItem"><a class="navItem" href="/just/docs/stacks-monorepo">Monorepo Stack</a></li><li class="navListItem"><a class="navItem" href="/just/docs/stacks-upgrades">Upgrading Repos</a></li></ul></div></div></section></div><script>
var coll = document.getElementsByClassName('collapsible');
var checkActiveCategory = true;
@ -56,7 +56,7 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/stacks-single.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Single Stack</h1></header><article><div><span><p>The simplest kind of projects are the single package repositories. Out of the box, <code>just</code> can create a single package library or a batteries-included web application. The generated repository will use the <code>just-task</code> library to manage its build definitions. You can customize the build task flow by editing the <code>just-task.js</code> at the root of the generated repository.</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/stacks-single.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Single Stack</h1></header><article><div><span><p>The simplest kind of projects are the single package repositories. Out of the box, <code>just</code> can create a single package library or a batteries-included web application. The generated repository will use the <code>just</code> library to manage its build definitions. You can customize the build task flow by editing the <code>just.config.js</code> at the root of the generated repository.</p>
<p>To get started, have a look at the <code>README.md</code> at the root of the newly generated repository. Some of the common commands are listed here.</p>
<h1><a class="anchor" aria-hidden="true" id="installing-dependencies"></a><a href="#installing-dependencies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Installing dependencies</h1>
<p>Installing dependencies is the job of the package manager. By default node.js comes with the <code>npm</code> package manager. We can simply do this:</p>

Просмотреть файл

@ -1,5 +1,5 @@
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Single Stack · Just ____</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;The simplest kind of projects are the single package repositories. Out of the box, &lt;code&gt;just&lt;/code&gt; can create a single package library or a batteries-included web application. The generated repository will use the &lt;code&gt;just-task&lt;/code&gt; library to manage its build definitions. You can customize the build task flow by editing the &lt;code&gt;just-task.js&lt;/code&gt; at the root of the generated repository.&lt;/p&gt;
"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Single Stack · Just ____"/><meta property="og:type" content="website"/><meta property="og:url" content="https://microsoft.github.io/just/"/><meta property="og:description" content="&lt;p&gt;The simplest kind of projects are the single package repositories. Out of the box, &lt;code&gt;just&lt;/code&gt; can create a single package library or a batteries-included web application. The generated repository will use the &lt;code&gt;just-task&lt;/code&gt; library to manage its build definitions. You can customize the build task flow by editing the &lt;code&gt;just-task.js&lt;/code&gt; at the root of the generated repository.&lt;/p&gt;
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Single Stack · Just ____</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;The simplest kind of projects are the single package repositories. Out of the box, &lt;code&gt;just&lt;/code&gt; can create a single package library or a batteries-included web application. The generated repository will use the &lt;code&gt;just&lt;/code&gt; library to manage its build definitions. You can customize the build task flow by editing the &lt;code&gt;just.config.js&lt;/code&gt; at the root of the generated repository.&lt;/p&gt;
"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Single Stack · Just ____"/><meta property="og:type" content="website"/><meta property="og:url" content="https://microsoft.github.io/just/"/><meta property="og:description" content="&lt;p&gt;The simplest kind of projects are the single package repositories. Out of the box, &lt;code&gt;just&lt;/code&gt; can create a single package library or a batteries-included web application. The generated repository will use the &lt;code&gt;just&lt;/code&gt; library to manage its build definitions. You can customize the build task flow by editing the &lt;code&gt;just.config.js&lt;/code&gt; at the root of the generated repository.&lt;/p&gt;
"/><meta name="twitter:card" content="summary"/><link rel="shortcut icon" href="/just/img/favicon.png"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script src="/just/js/scrollSpy.js"></script><link rel="stylesheet" href="/just/css/main.css"/><script src="/just/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/just/"><h2 class="headerTitle">Just ____</h2></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-internal"><li class="siteNavGroupActive"><a href="/just/docs/doc-start" target="_self">Documentation</a></li><li class=""><a href="https://github.com/microsoft/just" target="_self">GitHub</a></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line1"></div><div class="line2"></div><div class="line3"></div></div></div><h2><i></i><span>Stacks</span></h2><div class="tocToggler" id="tocToggler"><i class="icon-toc"></i></div></div><div class="navGroups"><div class="navGroup"><h3 class="navGroupCategoryTitle">Basics</h3><ul class=""><li class="navListItem"><a class="navItem" href="/just/docs/doc-start">Getting Started</a></li><li class="navListItem"><a class="navItem" href="/just/docs/composition">Composition of tasks</a></li><li class="navListItem"><a class="navItem" href="/just/docs/logging">Logging</a></li><li class="navListItem"><a class="navItem" href="/just/docs/args">Command line arguments</a></li><li class="navListItem"><a class="navItem" href="/just/docs/condition">Conditionals</a></li><li class="navListItem"><a class="navItem" href="/just/docs/thunk">Higher Order Task Functions</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Scripts</h3><ul class=""><li class="navListItem"><a class="navItem" href="/just/docs/scripts">Just Scripts</a></li><li class="navListItem"><a class="navItem" href="/just/docs/scripts-ts">TypeScript</a></li><li class="navListItem"><a class="navItem" href="/just/docs/scripts-jest">Jest</a></li><li class="navListItem"><a class="navItem" href="/just/docs/scripts-tslint">TypeScript Lint</a></li><li class="navListItem"><a class="navItem" href="/just/docs/scripts-webpack">Webpack</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Stacks</h3><ul class=""><li class="navListItem"><a class="navItem" href="/just/docs/stacks">Just Stacks</a></li><li class="navListItem navListItemActive"><a class="navItem" href="/just/docs/stacks-single">Single Stack</a></li><li class="navListItem"><a class="navItem" href="/just/docs/stacks-monorepo">Monorepo Stack</a></li><li class="navListItem"><a class="navItem" href="/just/docs/stacks-upgrades">Upgrading Repos</a></li></ul></div></div></section></div><script>
var coll = document.getElementsByClassName('collapsible');
var checkActiveCategory = true;
@ -56,7 +56,7 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/stacks-single.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Single Stack</h1></header><article><div><span><p>The simplest kind of projects are the single package repositories. Out of the box, <code>just</code> can create a single package library or a batteries-included web application. The generated repository will use the <code>just-task</code> library to manage its build definitions. You can customize the build task flow by editing the <code>just-task.js</code> at the root of the generated repository.</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/stacks-single.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Single Stack</h1></header><article><div><span><p>The simplest kind of projects are the single package repositories. Out of the box, <code>just</code> can create a single package library or a batteries-included web application. The generated repository will use the <code>just</code> library to manage its build definitions. You can customize the build task flow by editing the <code>just.config.js</code> at the root of the generated repository.</p>
<p>To get started, have a look at the <code>README.md</code> at the root of the newly generated repository. Some of the common commands are listed here.</p>
<h1><a class="anchor" aria-hidden="true" id="installing-dependencies"></a><a href="#installing-dependencies" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Installing dependencies</h1>
<p>Installing dependencies is the job of the package manager. By default node.js comes with the <code>npm</code> package manager. We can simply do this:</p>

Просмотреть файл

@ -1,5 +1,5 @@
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Upgrading Repos · Just ____</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;code&gt;just-stack&lt;/code&gt; is unique in that it tries to solve the template synchronization problem. When a repository has been scaffolded, generally the repository takes on a life of its own. There is no way for the template authors to help the generated repositories consume any updates. &lt;code&gt;just-stack&lt;/code&gt; employs a strategy of tracking diffs between template upgrades to be applied to existing repositories.&lt;/p&gt;
"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Upgrading Repos · Just ____"/><meta property="og:type" content="website"/><meta property="og:url" content="https://microsoft.github.io/just/"/><meta property="og:description" content="&lt;p&gt;&lt;code&gt;just-stack&lt;/code&gt; is unique in that it tries to solve the template synchronization problem. When a repository has been scaffolded, generally the repository takes on a life of its own. There is no way for the template authors to help the generated repositories consume any updates. &lt;code&gt;just-stack&lt;/code&gt; employs a strategy of tracking diffs between template upgrades to be applied to existing repositories.&lt;/p&gt;
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Upgrading Repos · Just ____</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;code&gt;just-stack&lt;/code&gt; upgrades are done via updating two dependencies:&lt;/p&gt;
"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Upgrading Repos · Just ____"/><meta property="og:type" content="website"/><meta property="og:url" content="https://microsoft.github.io/just/"/><meta property="og:description" content="&lt;p&gt;&lt;code&gt;just-stack&lt;/code&gt; upgrades are done via updating two dependencies:&lt;/p&gt;
"/><meta name="twitter:card" content="summary"/><link rel="shortcut icon" href="/just/img/favicon.png"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script src="/just/js/scrollSpy.js"></script><link rel="stylesheet" href="/just/css/main.css"/><script src="/just/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/just/"><h2 class="headerTitle">Just ____</h2></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-internal"><li class="siteNavGroupActive"><a href="/just/docs/doc-start" target="_self">Documentation</a></li><li class=""><a href="https://github.com/microsoft/just" target="_self">GitHub</a></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line1"></div><div class="line2"></div><div class="line3"></div></div></div><h2><i></i><span>Stacks</span></h2><div class="tocToggler" id="tocToggler"><i class="icon-toc"></i></div></div><div class="navGroups"><div class="navGroup"><h3 class="navGroupCategoryTitle">Basics</h3><ul class=""><li class="navListItem"><a class="navItem" href="/just/docs/doc-start">Getting Started</a></li><li class="navListItem"><a class="navItem" href="/just/docs/composition">Composition of tasks</a></li><li class="navListItem"><a class="navItem" href="/just/docs/logging">Logging</a></li><li class="navListItem"><a class="navItem" href="/just/docs/args">Command line arguments</a></li><li class="navListItem"><a class="navItem" href="/just/docs/condition">Conditionals</a></li><li class="navListItem"><a class="navItem" href="/just/docs/thunk">Higher Order Task Functions</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Scripts</h3><ul class=""><li class="navListItem"><a class="navItem" href="/just/docs/scripts">Just Scripts</a></li><li class="navListItem"><a class="navItem" href="/just/docs/scripts-ts">TypeScript</a></li><li class="navListItem"><a class="navItem" href="/just/docs/scripts-jest">Jest</a></li><li class="navListItem"><a class="navItem" href="/just/docs/scripts-tslint">TypeScript Lint</a></li><li class="navListItem"><a class="navItem" href="/just/docs/scripts-webpack">Webpack</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Stacks</h3><ul class=""><li class="navListItem"><a class="navItem" href="/just/docs/stacks">Just Stacks</a></li><li class="navListItem"><a class="navItem" href="/just/docs/stacks-single">Single Stack</a></li><li class="navListItem"><a class="navItem" href="/just/docs/stacks-monorepo">Monorepo Stack</a></li><li class="navListItem navListItemActive"><a class="navItem" href="/just/docs/stacks-upgrades">Upgrading Repos</a></li></ul></div></div></section></div><script>
var coll = document.getElementsByClassName('collapsible');
var checkActiveCategory = true;
@ -56,24 +56,11 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/stacks-upgrades.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Upgrading Repos</h1></header><article><div><span><p><code>just-stack</code> is unique in that it tries to solve the template synchronization problem. When a repository has been scaffolded, generally the repository takes on a life of its own. There is no way for the template authors to help the generated repositories consume any updates. <code>just-stack</code> employs a strategy of tracking diffs between template upgrades to be applied to existing repositories.</p>
<p>For example, suppose there was a repository named <code>kittens</code> that was scaffolded from the <code>just-stack-single-lib</code>:</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/stacks-upgrades.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Upgrading Repos</h1></header><article><div><span><p><code>just-stack</code> upgrades are done via updating two dependencies:</p>
<ol>
<li>Alice scaffolds a <code>kittens</code> repo via the <code>npm init just</code> command, selecting the <code>just-stack-single-lib</code> project type</li>
<li>Bob, the template author, modifies the <code>just-stack-single-lib</code> dependency of <code>@types/node</code> to the latest to take advantage of the cool new typings</li>
<li>Alice sees a change in the stack template, and decides to upgrade. She updates the <code>just-stack-single-lib</code> devDependencies inside her <code>/package.json</code></li>
<li>Alice runs an update <code>npm install</code></li>
<li>Alice then runs <code>npm run upgrade-repo</code> command to apply any new changes into her existing repo</li>
<li><code>just-scripts</code></li>
<li><code>just-stack-*</code></li>
</ol>
<p>This flow is very similar to the scaffolded monorepos:</p>
<ol>
<li>Alice scaffolds a <code>kittens</code> repo via the <code>npm init just</code> command, selecting the <code>just-stack-monorepo</code> project type</li>
<li>Bob, the template author, modifies the <code>just-stack-single-lib</code> dependency of <code>@types/node</code> to the latest to take advantage of the cool new typings</li>
<li>Alice sees a change in the stack template, and decides to upgrade. She updates the <code>just-stack-single-lib</code> devDependencies inside her <code>/scripts/package.json</code></li>
<li>Alice runs an update <code>npm run update</code> at the root</li>
<li>Alice then runs <code>npm run upgrade-repo</code> command to apply any new changes into her existing repo</li>
</ol>
<blockquote>
<p>Note: there are differences in the location of the <code>devDependencies</code> in step 3. Step 4 also requires Alice to run a slightly different command to update the dependencies <code>npm run update</code></p>
</blockquote>
<p>The <code>just-scripts</code> dependency updates the build scripts. When new functionality has been added or updated, you can update this dependency. For example, eslint task has been added recently and can be used when the scripts package is updated.</p>
<p>Separately, the <code>just-stack-*</code> dependency contain all the devDependencies needed for the <code>just-scripts</code>. These are versioned independently because scripts and deps can be released at different times. For example, even if we added new scripts inside <code>just-scripts</code>, generated repos may still want to keep the current devDependencies so not to have interruptions.</p>
</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/just/docs/stacks-monorepo"><span class="arrow-prev"></span><span>Monorepo Stack</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019</section></footer></div></body></html>

Просмотреть файл

@ -1,5 +1,5 @@
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Upgrading Repos · Just ____</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;code&gt;just-stack&lt;/code&gt; is unique in that it tries to solve the template synchronization problem. When a repository has been scaffolded, generally the repository takes on a life of its own. There is no way for the template authors to help the generated repositories consume any updates. &lt;code&gt;just-stack&lt;/code&gt; employs a strategy of tracking diffs between template upgrades to be applied to existing repositories.&lt;/p&gt;
"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Upgrading Repos · Just ____"/><meta property="og:type" content="website"/><meta property="og:url" content="https://microsoft.github.io/just/"/><meta property="og:description" content="&lt;p&gt;&lt;code&gt;just-stack&lt;/code&gt; is unique in that it tries to solve the template synchronization problem. When a repository has been scaffolded, generally the repository takes on a life of its own. There is no way for the template authors to help the generated repositories consume any updates. &lt;code&gt;just-stack&lt;/code&gt; employs a strategy of tracking diffs between template upgrades to be applied to existing repositories.&lt;/p&gt;
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Upgrading Repos · Just ____</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;code&gt;just-stack&lt;/code&gt; upgrades are done via updating two dependencies:&lt;/p&gt;
"/><meta name="docsearch:language" content="en"/><meta property="og:title" content="Upgrading Repos · Just ____"/><meta property="og:type" content="website"/><meta property="og:url" content="https://microsoft.github.io/just/"/><meta property="og:description" content="&lt;p&gt;&lt;code&gt;just-stack&lt;/code&gt; upgrades are done via updating two dependencies:&lt;/p&gt;
"/><meta name="twitter:card" content="summary"/><link rel="shortcut icon" href="/just/img/favicon.png"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css"/><script type="text/javascript" src="https://buttons.github.io/buttons.js"></script><script src="/just/js/scrollSpy.js"></script><link rel="stylesheet" href="/just/css/main.css"/><script src="/just/js/codetabs.js"></script></head><body class="sideNavVisible separateOnPageNav"><div class="fixedHeaderContainer"><div class="headerWrapper wrapper"><header><a href="/just/"><h2 class="headerTitle">Just ____</h2></a><div class="navigationWrapper navigationSlider"><nav class="slidingNav"><ul class="nav-site nav-site-internal"><li class="siteNavGroupActive"><a href="/just/docs/doc-start" target="_self">Documentation</a></li><li class=""><a href="https://github.com/microsoft/just" target="_self">GitHub</a></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><div class="hamburger-menu"><div class="line1"></div><div class="line2"></div><div class="line3"></div></div></div><h2><i></i><span>Stacks</span></h2><div class="tocToggler" id="tocToggler"><i class="icon-toc"></i></div></div><div class="navGroups"><div class="navGroup"><h3 class="navGroupCategoryTitle">Basics</h3><ul class=""><li class="navListItem"><a class="navItem" href="/just/docs/doc-start">Getting Started</a></li><li class="navListItem"><a class="navItem" href="/just/docs/composition">Composition of tasks</a></li><li class="navListItem"><a class="navItem" href="/just/docs/logging">Logging</a></li><li class="navListItem"><a class="navItem" href="/just/docs/args">Command line arguments</a></li><li class="navListItem"><a class="navItem" href="/just/docs/condition">Conditionals</a></li><li class="navListItem"><a class="navItem" href="/just/docs/thunk">Higher Order Task Functions</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Scripts</h3><ul class=""><li class="navListItem"><a class="navItem" href="/just/docs/scripts">Just Scripts</a></li><li class="navListItem"><a class="navItem" href="/just/docs/scripts-ts">TypeScript</a></li><li class="navListItem"><a class="navItem" href="/just/docs/scripts-jest">Jest</a></li><li class="navListItem"><a class="navItem" href="/just/docs/scripts-tslint">TypeScript Lint</a></li><li class="navListItem"><a class="navItem" href="/just/docs/scripts-webpack">Webpack</a></li></ul></div><div class="navGroup"><h3 class="navGroupCategoryTitle">Stacks</h3><ul class=""><li class="navListItem"><a class="navItem" href="/just/docs/stacks">Just Stacks</a></li><li class="navListItem"><a class="navItem" href="/just/docs/stacks-single">Single Stack</a></li><li class="navListItem"><a class="navItem" href="/just/docs/stacks-monorepo">Monorepo Stack</a></li><li class="navListItem navListItemActive"><a class="navItem" href="/just/docs/stacks-upgrades">Upgrading Repos</a></li></ul></div></div></section></div><script>
var coll = document.getElementsByClassName('collapsible');
var checkActiveCategory = true;
@ -56,24 +56,11 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/stacks-upgrades.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Upgrading Repos</h1></header><article><div><span><p><code>just-stack</code> is unique in that it tries to solve the template synchronization problem. When a repository has been scaffolded, generally the repository takes on a life of its own. There is no way for the template authors to help the generated repositories consume any updates. <code>just-stack</code> employs a strategy of tracking diffs between template upgrades to be applied to existing repositories.</p>
<p>For example, suppose there was a repository named <code>kittens</code> that was scaffolded from the <code>just-stack-single-lib</code>:</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/stacks-upgrades.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Upgrading Repos</h1></header><article><div><span><p><code>just-stack</code> upgrades are done via updating two dependencies:</p>
<ol>
<li>Alice scaffolds a <code>kittens</code> repo via the <code>npm init just</code> command, selecting the <code>just-stack-single-lib</code> project type</li>
<li>Bob, the template author, modifies the <code>just-stack-single-lib</code> dependency of <code>@types/node</code> to the latest to take advantage of the cool new typings</li>
<li>Alice sees a change in the stack template, and decides to upgrade. She updates the <code>just-stack-single-lib</code> devDependencies inside her <code>/package.json</code></li>
<li>Alice runs an update <code>npm install</code></li>
<li>Alice then runs <code>npm run upgrade-repo</code> command to apply any new changes into her existing repo</li>
<li><code>just-scripts</code></li>
<li><code>just-stack-*</code></li>
</ol>
<p>This flow is very similar to the scaffolded monorepos:</p>
<ol>
<li>Alice scaffolds a <code>kittens</code> repo via the <code>npm init just</code> command, selecting the <code>just-stack-monorepo</code> project type</li>
<li>Bob, the template author, modifies the <code>just-stack-single-lib</code> dependency of <code>@types/node</code> to the latest to take advantage of the cool new typings</li>
<li>Alice sees a change in the stack template, and decides to upgrade. She updates the <code>just-stack-single-lib</code> devDependencies inside her <code>/scripts/package.json</code></li>
<li>Alice runs an update <code>npm run update</code> at the root</li>
<li>Alice then runs <code>npm run upgrade-repo</code> command to apply any new changes into her existing repo</li>
</ol>
<blockquote>
<p>Note: there are differences in the location of the <code>devDependencies</code> in step 3. Step 4 also requires Alice to run a slightly different command to update the dependencies <code>npm run update</code></p>
</blockquote>
<p>The <code>just-scripts</code> dependency updates the build scripts. When new functionality has been added or updated, you can update this dependency. For example, eslint task has been added recently and can be used when the scripts package is updated.</p>
<p>Separately, the <code>just-stack-*</code> dependency contain all the devDependencies needed for the <code>just-scripts</code>. These are versioned independently because scripts and deps can be released at different times. For example, even if we added new scripts inside <code>just-scripts</code>, generated repos may still want to keep the current devDependencies so not to have interruptions.</p>
</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/just/docs/stacks-monorepo"><span class="arrow-prev"></span><span>Monorepo Stack</span></a></div></div></div><nav class="onPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2019</section></footer></div></body></html>

Просмотреть файл

@ -56,10 +56,11 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/stacks.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Just Stacks</h1></header><article><div><span><p>Just also provides what we call &quot;stacks&quot; to complete the workflow of building a repository. Just Stacks provides:</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/stacks.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Just Stacks</h1></header><article><div><span><p>Just also provides what we call &quot;stacks&quot; to complete the workflow of building a repository. Just Stacks provides:</p>
<ol>
<li>a project generator for single package or monorepo repository via <code>create-just</code></li>
<li>a set of <code>just-task</code>s to help keep the generated project up-to-date with the template that generated the project</li>
<li>generated repo depends on a <code>stack</code> like <code>just-stack-react</code> and <code>just-stack-monorepo</code> which provides all the devDependencies needed to build those stacks</li>
<li>these <code>stack</code>s also take <code>just-scripts</code> as a dependency which gives the repos the necessary build scripting for different parts of the stack (compiler, test runner, and bundler)</li>
</ol>
<h2><a class="anchor" aria-hidden="true" id="generate-a-new-project"></a><a href="#generate-a-new-project" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Generate a new project</h2>
<p>It is very fast and easy to get started! We have taken care to make this experience as fast as possible. You can create a project in a couple of seconds:</p>

Просмотреть файл

@ -56,10 +56,11 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/stacks.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Just Stacks</h1></header><article><div><span><p>Just also provides what we call &quot;stacks&quot; to complete the workflow of building a repository. Just Stacks provides:</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/stacks.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Just Stacks</h1></header><article><div><span><p>Just also provides what we call &quot;stacks&quot; to complete the workflow of building a repository. Just Stacks provides:</p>
<ol>
<li>a project generator for single package or monorepo repository via <code>create-just</code></li>
<li>a set of <code>just-task</code>s to help keep the generated project up-to-date with the template that generated the project</li>
<li>generated repo depends on a <code>stack</code> like <code>just-stack-react</code> and <code>just-stack-monorepo</code> which provides all the devDependencies needed to build those stacks</li>
<li>these <code>stack</code>s also take <code>just-scripts</code> as a dependency which gives the repos the necessary build scripting for different parts of the stack (compiler, test runner, and bundler)</li>
</ol>
<h2><a class="anchor" aria-hidden="true" id="generate-a-new-project"></a><a href="#generate-a-new-project" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z"></path></svg></a>Generate a new project</h2>
<p>It is very fast and easy to get started! We have taken care to make this experience as fast as possible. You can create a project in a couple of seconds:</p>

Просмотреть файл

@ -56,7 +56,7 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/thunk.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Higher Order Task Functions</h1></header><article><div><span><p>When a project truly gets big enough to have multiple variants of a build, a simple task function might be reused as variants. For example, the <code>just-task-preset</code> package includes a useful collection of task functions like <code>tscTask</code>. However, these tasks tend to be very generic. <code>tscTask()</code> is a task function factory. Calling it will generate a task function. But sometimes variations of the same preconfigured task function is needed. We will use a concept called <code>thunk</code> to create a task function that creates a task function on the fly!</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/thunk.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Higher Order Task Functions</h1></header><article><div><span><p>When a project truly gets big enough to have multiple variants of a build, a simple task function might be reused as variants. For example, the <code>just-task-preset</code> package includes a useful collection of task functions like <code>tscTask</code>. However, these tasks tend to be very generic. <code>tscTask()</code> is a task function factory. Calling it will generate a task function. But sometimes variations of the same preconfigured task function is needed. We will use a concept called <code>thunk</code> to create a task function that creates a task function on the fly!</p>
<p>Here is an example of a simple usage of a preset task function factory:</p>
<pre><code class="hljs css language-js"><span class="hljs-keyword">const</span> { task } = <span class="hljs-built_in">require</span>(<span class="hljs-string">'just-task'</span>);
<span class="hljs-keyword">const</span> { tscTask } = <span class="hljs-built_in">require</span>(<span class="hljs-string">'just-task-preset'</span>);

Просмотреть файл

@ -56,7 +56,7 @@
};
}
});
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/thunk.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Higher Order Task Functions</h1></header><article><div><span><p>When a project truly gets big enough to have multiple variants of a build, a simple task function might be reused as variants. For example, the <code>just-task-preset</code> package includes a useful collection of task functions like <code>tscTask</code>. However, these tasks tend to be very generic. <code>tscTask()</code> is a task function factory. Calling it will generate a task function. But sometimes variations of the same preconfigured task function is needed. We will use a concept called <code>thunk</code> to create a task function that creates a task function on the fly!</p>
</script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://github.com/microsoft/just/tree/master/packages/documentation/docs/thunk.md" target="_blank" rel="noreferrer noopener">Edit</a><h1 class="postHeaderTitle">Higher Order Task Functions</h1></header><article><div><span><p>When a project truly gets big enough to have multiple variants of a build, a simple task function might be reused as variants. For example, the <code>just-task-preset</code> package includes a useful collection of task functions like <code>tscTask</code>. However, these tasks tend to be very generic. <code>tscTask()</code> is a task function factory. Calling it will generate a task function. But sometimes variations of the same preconfigured task function is needed. We will use a concept called <code>thunk</code> to create a task function that creates a task function on the fly!</p>
<p>Here is an example of a simple usage of a preset task function factory:</p>
<pre><code class="hljs css language-js"><span class="hljs-keyword">const</span> { task } = <span class="hljs-built_in">require</span>(<span class="hljs-string">'just-task'</span>);
<span class="hljs-keyword">const</span> { tscTask } = <span class="hljs-built_in">require</span>(<span class="hljs-string">'just-task-preset'</span>);

Просмотреть файл

@ -21,7 +21,7 @@
"devDependencies": {
"@typescript-eslint/eslint-plugin": "^1.11.0",
"@typescript-eslint/parser": "^1.11.0",
"beachball": "^1.9.2",
"beachball": "^1.12.1",
"eslint": "^6.0.1",
"lerna": "^3.13.2"
},

Просмотреть файл

@ -4,16 +4,16 @@ title: Getting Started with Just
sidebar_label: Getting Started
---
`Just` is a build task definition library. It stands on the shoulders of two excellent and well tested libraries: undertaker and yargs. We encourage developers to make `just` available locally instead of installing `just` as a global tool.
`Just` simplifies your life in managing build tasks. It stands on the shoulders of excellent and well tested libraries: undertaker, yargs, and plop.js. We encourage developers to make `just-scripts` available locally instead of installing `just-scripts` as a global tool.
```sh
npm i -D just-task
npm i -D just-scripts
```
Place some task definitions inside `just-task.js` in your root folder (next to package.json):
Place some task definitions inside `just.config.js` in your root folder (next to package.json):
```js
const { task, option, logger, argv } = require('just-task');
const { task, option, logger, argv } = require('just-scripts');
option('name', { default: 'world' });
@ -33,4 +33,4 @@ That's all!
## Next Steps
Learn how to [compose tasks in just-task.js](composition.md)
Learn how to [compose tasks in just](composition.md)

Просмотреть файл

@ -6,55 +6,55 @@ sidebar_label: Monorepo Stack
When there are many highly related packages that are usually developed together, it makes sense to put them in the same repository. This ensures that those changes are atomic and can be released together in one go. When we put multiple packages inside a single repository, we call this a monorepo.
Just uses the [Rush](https://rushjs.io) library to manage monorepos. This library handles linking lots of little packages together to ensure a sane developer experience. Rush is powerful, but it does not provide opinions about what kind of packages are scaffolded inside the monorepo. Just Stacks provides this for Rush monorepos.
Just uses the [Lerna](https://lerna.js.org) library to manage monorepos together with [yarn workspaces](https://yarnpkg.com/lang/en/docs/workspaces/). Those libraries handles linking monorepo packages together to ensure a sane developer experience. Lerna is powerful, but it does not provide opinions about what kind of packages are scaffolded inside the monorepo. Just Stacks provides this for the monorepo.
# Prerequisites
Yarn is a prerequisite in using the monorepo stack. Install it like so:
```
npm install -g yarn
```
# Getting Started with the MonoRepo
After creating a monorepo, you can create packages, incrementally build all the packages, and even upgrade the packages according to changes from the templates by an [upgrade process](stacks-upgrades.md).
# Installing dependencies
Installing dependencies is the job of the Rush monorepo manager. By default node.js comes with the `npm` package manager. We can simply do this:
Installing dependencies is the job of Yarn. Install all dependencies and bootstrap the monorepo like so:
```
npm install
yarn
```
We have hooked up Rush's installation process with the `npm install` script for convenience.
> Like the single package stacks, don't forget to run `npm install` after you do a `git pull`
> Like the single package stacks, don't forget to run `yarn` after you do a `git pull`
# Building monorepo
To build all the packages, simply run the `build` npm script. Previously built packages will not be built. We call this incremental builds:
```
npm run build
yarn build
```
To develop with an innerloop experience, go inside the individual package and type:
```
cd packages/foo
npm start
yarn start
```
# Adding a new package into the repo
Rush actually requires a few steps to add a new package to its monorepo. `just-scripts` for monorepo fills this gap by providing a scaffolding experience similar to that of a `npm init just` call like when the monorepo was generated. Simply run this at the root of the monorepo:
Out of the box, the monorepo stack provides a mechanism to create new packages using the [plop.js](https://plopjs.com) utility. Simply run this to generate a new package:
```
npm run add-package
yarn gen
```
After picking a package name and a package type, the new package will be placed under `packages/` directory. Make sure you run an update to make sure deps and symlink are established by Rush:
After picking a package name and a package type, the new package will be placed under `packages/` directory. Make sure you update deps and symlink are established by Yarn:
```
npm run update
```
# Adding, updating, or removing a dependency to a package inside the monorepo
To modify a dependency after a package already exists inside the monorepo, modify the package's `package.json` to include the dependency. Then run the update command to retrieve the dependencies:
```
npm run update
yarn
```

Просмотреть файл

@ -4,7 +4,7 @@ title: Single Stack
sidebar_label: Single Stack
---
The simplest kind of projects are the single package repositories. Out of the box, `just` can create a single package library or a batteries-included web application. The generated repository will use the `just-task` library to manage its build definitions. You can customize the build task flow by editing the `just-task.js` at the root of the generated repository.
The simplest kind of projects are the single package repositories. Out of the box, `just` can create a single package library or a batteries-included web application. The generated repository will use the `just` library to manage its build definitions. You can customize the build task flow by editing the `just.config.js` at the root of the generated repository.
To get started, have a look at the `README.md` at the root of the newly generated repository. Some of the common commands are listed here.

Просмотреть файл

@ -4,22 +4,11 @@ title: Upgrading Repos
sidebar_label: Upgrading Repos
---
`just-stack` is unique in that it tries to solve the template synchronization problem. When a repository has been scaffolded, generally the repository takes on a life of its own. There is no way for the template authors to help the generated repositories consume any updates. `just-stack` employs a strategy of tracking diffs between template upgrades to be applied to existing repositories.
`just-stack` upgrades are done via updating two dependencies:
For example, suppose there was a repository named `kittens` that was scaffolded from the `just-stack-single-lib`:
1. `just-scripts`
2. `just-stack-*`
1. Alice scaffolds a `kittens` repo via the `npm init just` command, selecting the `just-stack-single-lib` project type
2. Bob, the template author, modifies the `just-stack-single-lib` dependency of `@types/node` to the latest to take advantage of the cool new typings
3. Alice sees a change in the stack template, and decides to upgrade. She updates the `just-stack-single-lib` devDependencies inside her `/package.json`
4. Alice runs an update `npm install`
5. Alice then runs `npm run upgrade-repo` command to apply any new changes into her existing repo
The `just-scripts` dependency updates the build scripts. When new functionality has been added or updated, you can update this dependency. For example, eslint task has been added recently and can be used when the scripts package is updated.
This flow is very similar to the scaffolded monorepos:
1. Alice scaffolds a `kittens` repo via the `npm init just` command, selecting the `just-stack-monorepo` project type
2. Bob, the template author, modifies the `just-stack-single-lib` dependency of `@types/node` to the latest to take advantage of the cool new typings
3. Alice sees a change in the stack template, and decides to upgrade. She updates the `just-stack-single-lib` devDependencies inside her `/scripts/package.json`
4. Alice runs an update `npm run update` at the root
5. Alice then runs `npm run upgrade-repo` command to apply any new changes into her existing repo
> Note: there are differences in the location of the `devDependencies` in step 3. Step 4 also requires Alice to run a slightly different command to update the dependencies `npm run update`
Separately, the `just-stack-*` dependency contain all the devDependencies needed for the `just-scripts`. These are versioned independently because scripts and deps can be released at different times. For example, even if we added new scripts inside `just-scripts`, generated repos may still want to keep the current devDependencies so not to have interruptions.

Просмотреть файл

@ -7,7 +7,8 @@ sidebar_label: Just Stacks
Just also provides what we call "stacks" to complete the workflow of building a repository. Just Stacks provides:
1. a project generator for single package or monorepo repository via `create-just`
2. a set of `just-task`s to help keep the generated project up-to-date with the template that generated the project
2. generated repo depends on a `stack` like `just-stack-react` and `just-stack-monorepo` which provides all the devDependencies needed to build those stacks
3. these `stack`s also take `just-scripts` as a dependency which gives the repos the necessary build scripting for different parts of the stack (compiler, test runner, and bundler)
## Generate a new project

Просмотреть файл

@ -73,7 +73,7 @@ const siteConfig = {
// You may provide arbitrary config keys to be used as needed by your
// template. For example, if you need your repo's URL...
editUrl: 'https://github.com/kenotron/just-task/tree/master/packages/documentation/docs/'
editUrl: 'https://github.com/microsoft/just/tree/master/packages/documentation/docs/'
};
module.exports = siteConfig;

Просмотреть файл

@ -10,7 +10,7 @@
"author": "",
"license": "MIT",
"devDependencies": {
"just-scripts": ">=0.28.0 <1.0.0",
"just-scripts": ">=0.28.2 <1.0.0",
"typescript": "~3.4.4"
}
}

Просмотреть файл

@ -1,6 +1,34 @@
{
"name": "just-scripts",
"entries": [
{
"date": "Mon, 26 Aug 2019 17:08:08 GMT",
"tag": "just-scripts_v0.28.2",
"version": "0.28.2",
"comments": {
"patch": [
{
"comment": "adds a forceexit flag to make sure timeouts don't hang the runner",
"author": "kchau@microsoft.com",
"commit": "1eaa0fd3bacc82c58d85dd02c53f3af5aa70eb79"
}
]
}
},
{
"date": "Wed, 14 Aug 2019 18:36:20 GMT",
"tag": "just-scripts_v0.28.1",
"version": "0.28.1",
"comments": {
"patch": [
{
"comment": "Update just-scripts-utils version",
"author": "altinokd@microsoft.com",
"commit": "8633c9ea8bde3e6239e67b3225286636898cad1b"
}
]
}
},
{
"date": "Wed, 07 Aug 2019 22:11:38 GMT",
"tag": "just-scripts_v0.28.0",

Просмотреть файл

@ -1,6 +1,20 @@
# Change Log - just-scripts
This log was last generated on Wed, 07 Aug 2019 22:11:38 GMT and should not be manually modified.
This log was last generated on Mon, 26 Aug 2019 17:08:08 GMT and should not be manually modified.
## 0.28.2
Mon, 26 Aug 2019 17:08:08 GMT
### Patches
- adds a forceexit flag to make sure timeouts don't hang the runner (kchau@microsoft.com)
## 0.28.1
Wed, 14 Aug 2019 18:36:20 GMT
### Patches
- Update just-scripts-utils version (altinokd@microsoft.com)
## 0.28.0
Wed, 07 Aug 2019 22:11:38 GMT

Просмотреть файл

@ -1,6 +1,6 @@
{
"name": "just-scripts",
"version": "0.28.0",
"version": "0.28.2",
"description": "Just Stack Scripts",
"repository": {
"type": "git",
@ -20,7 +20,7 @@
"fs-extra": "^7.0.1",
"glob": "^7.1.3",
"just-scripts-utils": ">=0.8.4 <1.0.0",
"just-task": ">=0.13.1 <1.0.0",
"just-task": ">=0.13.2 <1.0.0",
"npm-registry-fetch": "^3.9.0",
"prompts": "^2.0.1",
"run-parallel-limit": "^1.0.5",

Просмотреть файл

@ -35,6 +35,8 @@ export function jestTask(options: JestTaskOptions = {}): TaskFunction {
configFile,
'--passWithNoTests',
'--colors',
// This generates a warning from jest CLI, but it can be safely ignored
'--forceExit',
...(options.runInBand ? ['--runInBand'] : []),
...(options.coverage ? ['--coverage'] : []),
...(options.watch ? ['--watch'] : []),

Просмотреть файл

@ -1,6 +1,20 @@
{
"name": "just-stack-monorepo",
"entries": [
{
"date": "Tue, 27 Aug 2019 03:39:24 GMT",
"tag": "just-stack-monorepo_v1.0.5",
"version": "1.0.5",
"comments": {
"patch": [
{
"comment": "bump beachball",
"author": "kchau@microsoft.com",
"commit": "80cfddb5342d0409a9ebe1309686be9fdcd23b90"
}
]
}
},
{
"date": "Wed, 14 Aug 2019 04:37:37 GMT",
"tag": "just-stack-monorepo_v1.0.4",

Просмотреть файл

@ -1,7 +1,13 @@
# Change Log - just-stack-monorepo
This log was last generated on Wed, 14 Aug 2019 04:37:37 GMT and should not be manually modified.
This log was last generated on Tue, 27 Aug 2019 03:39:24 GMT and should not be manually modified.
## 1.0.5
Tue, 27 Aug 2019 03:39:24 GMT
### Patches
- bump beachball (kchau@microsoft.com)
## 1.0.4
Wed, 14 Aug 2019 04:37:37 GMT

Просмотреть файл

@ -1,6 +1,6 @@
{
"name": "just-stack-monorepo",
"version": "1.0.4",
"version": "1.0.5",
"description": "Just stack for monorepo using Rush",
"keywords": [
"just-stack"

Просмотреть файл

@ -8,7 +8,7 @@
"devDependencies": {
"just-stack-monorepo": "^1.0.0",
"lerna": "^3.13.2",
"beachball": "^1.11.5",
"beachball": "^1.12.1",
"plop": "^2.4.0"
},
"scripts": {

Просмотреть файл

@ -1,6 +1,20 @@
{
"name": "just-stack-single-lib",
"entries": [
{
"date": "Tue, 27 Aug 2019 03:39:24 GMT",
"tag": "just-stack-single-lib_v1.0.3",
"version": "1.0.3",
"comments": {
"patch": [
{
"comment": "bump beachball",
"author": "kchau@microsoft.com",
"commit": "80cfddb5342d0409a9ebe1309686be9fdcd23b90"
}
]
}
},
{
"date": "Tue, 06 Aug 2019 04:07:38 GMT",
"tag": "just-stack-single-lib_v1.0.2",

Просмотреть файл

@ -1,7 +1,13 @@
# Change Log - just-stack-single-lib
This log was last generated on Tue, 06 Aug 2019 04:07:38 GMT and should not be manually modified.
This log was last generated on Tue, 27 Aug 2019 03:39:24 GMT and should not be manually modified.
## 1.0.3
Tue, 27 Aug 2019 03:39:24 GMT
### Patches
- bump beachball (kchau@microsoft.com)
## 1.0.2
Tue, 06 Aug 2019 04:07:38 GMT

Просмотреть файл

@ -1,6 +1,6 @@
{
"name": "just-stack-single-lib",
"version": "1.0.2",
"version": "1.0.3",
"license": "MIT",
"main": "lib-commonjs/index.js",
"module": "lib/index.js",
@ -13,7 +13,7 @@
"beachball": "^1.11.5",
"jest": "^24.8.0",
"just-plop-helpers": "^1.1.2",
"just-scripts": "^0.28.0",
"just-scripts": "^0.28.2",
"plop": "^2.4.0",
"typescript": "^3.5.3"
}

Просмотреть файл

@ -15,6 +15,6 @@
"devDependencies": {
"just-stack-single-lib": "^1.0.0",
"just-scripts": "^0.27.0",
"beachball": "^1.11.5"
"beachball": "^1.12.1"
}
}

Просмотреть файл

@ -1,6 +1,20 @@
{
"name": "just-task",
"entries": [
{
"date": "Mon, 26 Aug 2019 22:53:18 GMT",
"tag": "just-task_v0.13.2",
"version": "0.13.2",
"comments": {
"patch": [
{
"comment": "caching algo changed so it is faster",
"author": "kchau@microsoft.com",
"commit": "ab2a2d3ce2a4b0008de05c3d6a92555136d889dc"
}
]
}
},
{
"date": "Mon, 22 Jul 2019 20:51:44 GMT",
"tag": "just-task_v0.13.1",

Просмотреть файл

@ -1,7 +1,13 @@
# Change Log - just-task
This log was last generated on Mon, 22 Jul 2019 20:51:44 GMT and should not be manually modified.
This log was last generated on Mon, 26 Aug 2019 22:53:18 GMT and should not be manually modified.
## 0.13.2
Mon, 26 Aug 2019 22:53:18 GMT
### Patches
- caching algo changed so it is faster (kchau@microsoft.com)
## 0.13.1
Mon, 22 Jul 2019 20:51:44 GMT

Просмотреть файл

@ -1,6 +1,6 @@
{
"name": "just-task",
"version": "0.13.1",
"version": "0.13.2",
"description": "Build task definition library",
"keywords": [],
"repository": {

Просмотреть файл

@ -4,8 +4,9 @@ import { resolveCwd } from './resolve';
import fs from 'fs-extra';
import path from 'path';
import { logger, mark } from 'just-task-logger';
import { findGitRoot } from './package/findGitRoot';
import { findDependents } from './package/findDependents';
import { findGitRoot } from './package/findGitRoot';
import { spawnSync } from 'child_process';
const cachedTask: string[] = [];
const CacheFileName = 'package-deps.json';
@ -68,10 +69,14 @@ export function saveCache(taskName: string) {
}
}
function getCachePath() {
function getPackageRootPath() {
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
const packageJsonFilePath = resolveCwd('package.json')!;
const rootPath = path.dirname(packageJsonFilePath);
return path.dirname(packageJsonFilePath);
}
function getCachePath() {
const rootPath = getPackageRootPath();
return path.join(rootPath, 'node_modules/.just');
}
@ -82,38 +87,51 @@ interface CacheHash {
dependentHashTimestamps: { [pkgName: string]: number };
}
function getLockFileHashes(): { [file: string]: string } {
const results: { [file: string]: string } = {};
const lockFiles = ['shrinkwrap.yml', 'package-lock.json', 'yarn.lock', 'pnpmfile.js'];
const gitRoot = findGitRoot();
const lsFileResults = spawnSync('git', ['ls-files', ...lockFiles], { cwd: gitRoot });
if (lsFileResults.status !== 0) {
return {};
}
const foundLockFiles = lsFileResults.stdout
.toString()
.split(/\n/)
.map(l => l.trim());
const hashResults = spawnSync('git', ['hash-object', ...foundLockFiles], { cwd: gitRoot });
if (hashResults.status !== 0) {
return {};
}
const hashes = hashResults.stdout
.toString()
.split(/\n/)
.map(l => l.trim());
foundLockFiles.forEach((foundLockFile, index) => {
results[foundLockFile] = hashes[index];
});
return results;
}
function getHash(taskName: string): CacheHash | null {
mark('cache:getHash');
const { ...args } = argv();
const gitRoot = findGitRoot();
const packageRootPath = getPackageRootPath();
if (!gitRoot) {
return null;
}
const packageDeps = getPackageDeps(packageRootPath);
const packageDeps = getPackageDeps(gitRoot);
const lockFileHashes = getLockFileHashes();
const cwd = process.cwd();
const files: typeof packageDeps.files = {};
Object.keys(packageDeps.files).forEach(file => {
const basename = path.basename(file);
if (
isChildOf(path.join(gitRoot, file), cwd) ||
basename === 'shrinkwrap.yml' ||
basename === 'package-lock.json' ||
basename === 'yarn.lock' ||
basename === 'pnpmfile.js'
) {
files[file] = packageDeps.files[file];
}
});
packageDeps.files = files;
packageDeps.files = { ...packageDeps.files, ...lockFileHashes };
const hash = {
args,
@ -127,11 +145,6 @@ function getHash(taskName: string): CacheHash | null {
return hash;
}
function isChildOf(child: string, parent: string) {
const relativePath = path.relative(child, parent);
return /^[.\/\\]+$/.test(relativePath);
}
function getDependentHashTimestamps() {
mark('cache:getDependentHashTimestamps');
const dependentPkgPaths = findDependents();

142
yarn.lock
Просмотреть файл

@ -2149,6 +2149,13 @@
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
"@types/minipass@*":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@types/minipass/-/minipass-2.2.0.tgz#51ad404e8eb1fa961f75ec61205796807b6f9651"
integrity sha512-wuzZksN4w4kyfoOv/dlpov4NOunwutLA/q7uc00xU02ZyUY+aoM5PWIXEKBMnm0NHd4a+N71BMjq+x7+2Af1fg==
dependencies:
"@types/node" "*"
"@types/mock-fs@^3.6.30":
version "3.6.30"
resolved "https://registry.yarnpkg.com/@types/mock-fs/-/mock-fs-3.6.30.tgz#4d812541e87b23577261a5aa95f704dd3d01e410"
@ -2224,10 +2231,11 @@
integrity sha512-78AdXtlhpCHT0K3EytMpn4JNxaf5tbqbLcbIRoQIHzpTIyjpxLQKRoxU55ujBXAtg3Nl2h/XWvfDa9dsMOd0pQ==
"@types/tar@^4.0.0":
version "4.0.0"
resolved "https://registry.yarnpkg.com/@types/tar/-/tar-4.0.0.tgz#e3239d969eeb693a012200613860d0eb871c94f0"
integrity sha512-YybbEHNngcHlIWVCYsoj7Oo1JU9JqONuAlt1LlTH/lmL8BMhbzdFUgReY87a05rY1j8mfK47Del+TCkaLAXwLw==
version "4.0.3"
resolved "https://registry.yarnpkg.com/@types/tar/-/tar-4.0.3.tgz#e2cce0b8ff4f285293243f5971bd7199176ac489"
integrity sha512-Z7AVMMlkI8NTWF0qGhC4QIX0zkV/+y0J8x7b/RsHrN0310+YNjoJd8UrApCiGBCWtKjxS9QhNqLi2UJNToh5hA==
dependencies:
"@types/minipass" "*"
"@types/node" "*"
"@types/uglify-js@*":
@ -2835,21 +2843,13 @@ are-we-there-yet@~1.1.2:
delegates "^1.0.0"
readable-stream "^2.0.6"
argparse@^1.0.7:
argparse@^1.0.10, argparse@^1.0.7:
version "1.0.10"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
dependencies:
sprintf-js "~1.0.2"
argparse@~0.1.15:
version "0.1.16"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-0.1.16.tgz#cfd01e0fbba3d6caed049fbd758d40f65196f57c"
integrity sha1-z9AeD7uj1srtBJ+9dY1A9lGW9Xw=
dependencies:
underscore "~1.7.0"
underscore.string "~2.4.0"
arr-diff@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
@ -3084,10 +3084,12 @@ atob@^2.1.1:
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
autolinker@~0.15.0:
version "0.15.3"
resolved "https://registry.yarnpkg.com/autolinker/-/autolinker-0.15.3.tgz#342417d8f2f3461b14cf09088d5edf8791dc9832"
integrity sha1-NCQX2PLzRhsUzwkIjV7fh5HcmDI=
autolinker@~0.28.0:
version "0.28.1"
resolved "https://registry.yarnpkg.com/autolinker/-/autolinker-0.28.1.tgz#0652b491881879f0775dace0cdca3233942a4e47"
integrity sha1-BlK0kYgYefB3XazgzcoyM5QqTkc=
dependencies:
gulp-header "^1.7.1"
autoprefixer@^9.4.5, autoprefixer@^9.6.0:
version "9.6.0"
@ -3240,10 +3242,10 @@ beachball@^1.11.5:
semver "^6.1.1"
yargs-parser "^13.1.0"
beachball@^1.9.2:
version "1.9.2"
resolved "https://registry.yarnpkg.com/beachball/-/beachball-1.9.2.tgz#960f2141b5aa2f6d8ba6aada207698c11c1c632a"
integrity sha512-wOvfOhtP7vcdVOGKKXwVmmbmrznF00nOCnudlZ8L8cQBva/wDZNPOZ3Fx1623HKbtDu+dlvvZAdeipYdEt5kDQ==
beachball@^1.12.1:
version "1.12.1"
resolved "https://registry.yarnpkg.com/beachball/-/beachball-1.12.1.tgz#a88493b57d3e97a90c4e873876382ba8a38b68e4"
integrity sha512-bZJmhmVAeULiaxBCyrcltAfF6EqFxuCWp89iC1nlGdQ9wjVcV+rag3ALah9NO/3zPsx/jtqLMQZtulQH8D2buw==
dependencies:
fs-extra "^8.0.1"
git-url-parse "^11.1.2"
@ -4245,6 +4247,13 @@ concat-stream@^2.0.0:
readable-stream "^3.0.2"
typedarray "^0.0.6"
concat-with-sourcemaps@*:
version "1.1.0"
resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e"
integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==
dependencies:
source-map "^0.6.1"
config-chain@^1.1.11:
version "1.1.12"
resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa"
@ -6717,6 +6726,15 @@ growly@^1.3.0:
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=
gulp-header@^1.7.1:
version "1.8.12"
resolved "https://registry.yarnpkg.com/gulp-header/-/gulp-header-1.8.12.tgz#ad306be0066599127281c4f8786660e705080a84"
integrity sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ==
dependencies:
concat-with-sourcemaps "*"
lodash.template "^4.4.0"
through2 "^2.0.0"
gzip-size@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-3.0.0.tgz#546188e9bdc337f673772f81660464b389dce520"
@ -7241,7 +7259,7 @@ inflight@^1.0.4:
once "^1.3.0"
wrappy "1"
inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3:
inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1:
version "2.0.3"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
@ -7251,6 +7269,11 @@ inherits@2.0.1:
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=
inherits@~2.0.3:
version "2.0.4"
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
ini@^1.3.2, ini@^1.3.4, ini@~1.3.0:
version "1.3.5"
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
@ -8645,7 +8668,7 @@ locate-path@^3.0.0:
p-locate "^3.0.0"
path-exists "^3.0.0"
lodash._reinterpolate@~3.0.0:
lodash._reinterpolate@^3.0.0, lodash._reinterpolate@~3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
@ -8706,9 +8729,9 @@ lodash.memoize@^4.1.2:
integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
lodash.merge@^4.4.0:
version "4.6.1"
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.1.tgz#adc25d9cb99b9391c59624f379fbba60d7111d54"
integrity sha512-AOYza4+Hf5z1/0Hztxpm2/xiPZgi/cjMqdnKTUWTBSKchJlxXXuUSxCCl8rJlf4g6yww/j6mA8nC8Hw/EZWxKQ==
version "4.6.2"
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
lodash.pick@^4.2.1:
version "4.4.0"
@ -8748,12 +8771,20 @@ lodash.template@^4.0.2:
lodash._reinterpolate "~3.0.0"
lodash.templatesettings "^4.0.0"
lodash.templatesettings@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.1.0.tgz#2b4d4e95ba440d915ff08bc899e4553666713316"
integrity sha1-K01OlbpEDZFf8IvImeRVNmZxMxY=
lodash.template@^4.4.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab"
integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==
dependencies:
lodash._reinterpolate "~3.0.0"
lodash._reinterpolate "^3.0.0"
lodash.templatesettings "^4.0.0"
lodash.templatesettings@^4.0.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33"
integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==
dependencies:
lodash._reinterpolate "^3.0.0"
lodash.toarray@^4.4.0:
version "4.4.0"
@ -8770,12 +8801,7 @@ lodash.uniq@^4.5.0:
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.3, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0, lodash@~4.17.10:
version "4.17.11"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==
lodash@^4.17.12, lodash@^4.17.13:
lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.3, lodash@^4.17.5, lodash@^4.2.1, lodash@^4.3.0, lodash@~4.17.10:
version "4.17.15"
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
@ -9257,7 +9283,7 @@ mississippi@^3.0.0:
stream-each "^1.1.0"
through2 "^2.0.0"
mixin-deep@^1.1.3:
mixin-deep@^1.1.3, mixin-deep@^1.2.0:
version "1.3.2"
resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
@ -9265,14 +9291,6 @@ mixin-deep@^1.1.3:
for-in "^1.0.2"
is-extendable "^1.0.1"
mixin-deep@^1.2.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe"
integrity sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==
dependencies:
for-in "^1.0.2"
is-extendable "^1.0.1"
mkdirp@0.5.x, mkdirp@0.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1:
version "0.5.1"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
@ -10881,11 +10899,16 @@ private@^0.1.6:
resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==
process-nextick-args@^2.0.0, process-nextick-args@~2.0.0:
process-nextick-args@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==
process-nextick-args@~2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
process@^0.11.10:
version "0.11.10"
resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
@ -11440,12 +11463,12 @@ relateurl@0.2.x:
integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=
remarkable@^1.7.1:
version "1.7.1"
resolved "https://registry.yarnpkg.com/remarkable/-/remarkable-1.7.1.tgz#aaca4972100b66a642a63a1021ca4bac1be3bff6"
integrity sha1-qspJchALZqZCpjoQIcpLrBvjv/Y=
version "1.7.4"
resolved "https://registry.yarnpkg.com/remarkable/-/remarkable-1.7.4.tgz#19073cb960398c87a7d6546eaa5e50d2022fcd00"
integrity sha512-e6NKUXgX95whv7IgddywbeN/ItCkWbISmc2DiqHJb0wTrqZIexqdco5b8Z3XZoo/48IdNVKM9ZCvTPJ4F5uvhg==
dependencies:
argparse "~0.1.15"
autolinker "~0.15.0"
argparse "^1.0.10"
autolinker "~0.28.0"
remove-trailing-separator@^1.0.1:
version "1.1.0"
@ -13058,21 +13081,11 @@ unc-path-regex@^0.1.2:
resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa"
integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo=
underscore.string@~2.4.0:
version "2.4.0"
resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-2.4.0.tgz#8cdd8fbac4e2d2ea1e7e2e8097c42f442280f85b"
integrity sha1-jN2PusTi0uoefi6Al8QvRCKA+Fs=
underscore@^1.7.0:
version "1.9.1"
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961"
integrity sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==
underscore@~1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.7.0.tgz#6bbaf0877500d36be34ecaa584e0db9fef035209"
integrity sha1-a7rwh3UA02vjTsqlhODbn+8DUgk=
undertaker-registry@^1.0.0, undertaker-registry@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/undertaker-registry/-/undertaker-registry-1.0.1.tgz#5e4bda308e4a8a2ae584f9b9a4359a499825cc50"
@ -13698,11 +13711,16 @@ xml@^1.0.1:
resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5"
integrity sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=
xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1:
xtend@^4.0.0, xtend@~4.0.0:
version "4.0.1"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"
integrity sha1-pcbVMr5lbiPbgg77lDofBJmNY68=
xtend@~4.0.1:
version "4.0.2"
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
y18n@^3.2.1:
version "3.2.1"
resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41"