# Skeletons on master branch vs download link

**URL:** <https://discourse.aurelia.io/t/skeletons-on-master-branch-vs-download-link/867>\
**Category:** Best Practices\
**Created:** [March 6, 2018, 12:26am UTC](https://discourse.aurelia.io/t/skeletons-on-master-branch-vs-download-link/867 "2018-03-06T00:26:30Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![guy.jacks](https://avatars.discourse-cdn.com/v4/letter/g/839c29/32.png) [@guy.jacks](https://discourse.aurelia.io/u/guy.jacks)\
**Post date:** [March 6, 2018, 12:26am UTC](https://discourse.aurelia.io/t/skeletons-on-master-branch-vs-download-link/867/1 "2018-03-06T00:26:30Z")

</div>

I’m about to launch a new Aurelia app with webpack. The skeletons for download linked by the tutorial are from 2016 and are different from the ones on the master branch. Is there a good reason not to use the the master branch skeletons?

---

<div class="post-metadata">

**Author:** ![Alexander-Taran](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.aurelia.io/alexander-taran/32/2308_2.png) [@Alexander-Taran](https://discourse.aurelia.io/u/Alexander-Taran)\
**Post date:** [March 6, 2018, 12:53am UTC](https://discourse.aurelia.io/t/skeletons-on-master-branch-vs-download-link/867/2 "2018-03-06T00:53:30Z")

</div>

You will be better off with the one that CLI creates.  
There is a webpack 4 storm at the moment… Seems everyone rushes to upgrade their projects to it.  
CLI will set you up for webpack 3. And there is a version of Aurelia-webpack-plugin for v4.

If you have time for fiddling with it… start with 4:  
You can grab minimal compatible with 4 configs here:

> **[jods4/aurelia-webpack-build](https://github.com/jods4/aurelia-webpack-build)**
>
> Experiments in minimal working webpack build setups for Aurelia. - jods4/aurelia-webpack-build

  
in demos folder

If you want skeletons - go for master but be warned about `not released` code…

---

<div class="post-metadata">

**Author:** ![guy.jacks](https://avatars.discourse-cdn.com/v4/letter/g/839c29/32.png) [@guy.jacks](https://discourse.aurelia.io/u/guy.jacks)\
**Post date:** [March 6, 2018, 2:55am UTC](https://discourse.aurelia.io/t/skeletons-on-master-branch-vs-download-link/867/3 "2018-03-06T02:55:34Z")

</div>

Thanks for your answer.

I went with the cli tool. “au run” asked me if I wanted to use webpack and so I chose yes.

This produced a project that could run, but with broken test frameworks. Jest & Karma both throw errors out of the box.

It also does not seem to generate a command for running the e2e tests even though webpack appears to be configured to run them.

Should I create a separate topic for these issues?

I also tried the default “au new” generated app and everything worked, but it doesn’t support SASS, Jest, or e2e so it’s not helpful for any of my projects.

The master branch skeleton seems to work flawlessly in that I can run the app, run jest, run karma, and run protractor out of the box. I’m not sure what you mean by unreleased code. Do you mean that master is not the current stable release of Aurelia? It would be helpful to know what the dangers of using the master branch skeletons are.

---

<div class="post-metadata">

**Author:** ![adriatic](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.aurelia.io/adriatic/32/96_2.png) [@adriatic](https://discourse.aurelia.io/u/adriatic)\
**Post date:** [March 6, 2018, 4:13am UTC](https://discourse.aurelia.io/t/skeletons-on-master-branch-vs-download-link/867/4 "2018-03-06T04:13:09Z")

</div>

> Do you mean that master is not the current stable release of Aurelia?

There is no such thing as a current stable release of Aurelia, @guy.jacks. Master branch contains the code that is being prepared for the next release and since the Aurelia framework code is contained in multiple repositories (each of them having a master branch), creating a new Aurelia release requires deep knowledge of mutual compatibility of all these master branches. In most cases it is @EisenbergEffect who acts in the role of the system integrator, and the only safe way to get consistent set of Aurelia framework _ **components** _ is to get them from **[here](https://github.com/aurelia/framework/releases)**, where the latest release is **[here](https://github.com/aurelia/framework/releases/tag/1.1.5)**.

Note that most of Aurelia developers would get a clone of the master branch of any particular framework component for the purpose of testing something, but never to use in the process of building an application to be deployed.

---

<div class="post-metadata">

**Author:** ![Alexander-Taran](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.aurelia.io/alexander-taran/32/2308_2.png) [@Alexander-Taran](https://discourse.aurelia.io/u/Alexander-Taran)\
**Post date:** [March 6, 2018, 10:51am UTC](https://discourse.aurelia.io/t/skeletons-on-master-branch-vs-download-link/867/5 "2018-03-06T10:51:14Z")

</div>

> [@guy.jacks](#):
>
> This produced a project that could run, but with broken test frameworks. Jest & Karma both throw errors out of the box.

au jest was fixed in some ways.  
You have to manually upgrade pal-nodejs dependency though.  
Strangely package.json produced by CLI hardlocks on beta.2.0.0

> [@guy.jacks](#):
>
> It also does not seem to generate a command for running the e2e

for e2e I can’t say… there were some issues resolved recently

> [@guy.jacks](#):
>
> I’m not sure what you mean by unreleased code

for released… yes… what’s on master is not considered released. But the skeletons were not released for a long time now…  
So there are no guaranties… But if it works for you - great. Does for me as well (-:  
No dangers. It’s just a snapshot in time.  
I guess nobody expects to to stay with skeleton as it is… It’s a starting point. A skeleton (-:

Experiment your way around.

And share your experiences.

---

<div class="post-metadata">

**Author:** ![Alexander-Taran](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.aurelia.io/alexander-taran/32/2308_2.png) [@Alexander-Taran](https://discourse.aurelia.io/u/Alexander-Taran)\
**Post date:** [March 6, 2018, 10:52am UTC](https://discourse.aurelia.io/t/skeletons-on-master-branch-vs-download-link/867/6 "2018-03-06T10:52:38Z")

</div>

> [@adriatic](#):
>
> creating a new Aurelia release requires deep knowledge of mutual compatibility of all these master branches

Not helping.  
Why scare people off with complexities? (-:

---

<div class="post-metadata">

**Author:** ![guy.jacks](https://avatars.discourse-cdn.com/v4/letter/g/839c29/32.png) [@guy.jacks](https://discourse.aurelia.io/u/guy.jacks)\
**Post date:** [March 6, 2018, 5:06pm UTC](https://discourse.aurelia.io/t/skeletons-on-master-branch-vs-download-link/867/7 "2018-03-06T17:06:53Z")

</div>

I upgraded aurelia-pal-nodejs. Now it throws the following error. It was already throwing this error before the upgrade when I ran “au karma”. Now it throws it when I run “au jest”.

```
TypeError: /Users/guyjacks/projects/practice/aurelia-app-two/src/app.js: Cannot read property 'some' of undefined

  at VisitState.onEnter (node_modules/istanbul-lib-instrument/dist/visitor.js:147:65)
  at VisitState.wrappedEntry (node_modules/istanbul-lib-instrument/dist/visitor.js:336:14)
  at NodePath._call (node_modules/babel-traverse/lib/path/context.js:76:18)
  at NodePath.call (node_modules/babel-traverse/lib/path/context.js:48:17)
  at NodePath.visit (node_modules/babel-traverse/lib/path/context.js:105:12)
  at TraversalContext.visitQueue (node_modules/babel-traverse/lib/context.js:150:16)
  at TraversalContext.visitMultiple (node_modules/babel-traverse/lib/context.js:103:17)
  at TraversalContext.visit (node_modules/babel-traverse/lib/context.js:190:19)
  at Function.traverse.node (node_modules/babel-traverse/lib/index.js:114:17)
  at NodePath.visit (node_modules/babel-traverse/lib/path/context.js:115:19)
```

---

<div class="post-metadata">

**Author:** ![Alexander-Taran](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.aurelia.io/alexander-taran/32/2308_2.png) [@Alexander-Taran](https://discourse.aurelia.io/u/Alexander-Taran)\
**Post date:** [March 6, 2018, 9:32pm UTC](https://discourse.aurelia.io/t/skeletons-on-master-branch-vs-download-link/867/8 "2018-03-06T21:32:11Z")

</div>

A-ha… looks like you missing out on polyfils…  
CLI creates some jest-settings to bootstrap jest  
can you post `jest` section of `package.json`?

---

<div class="post-metadata">

**Author:** ![Alexander-Taran](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.aurelia.io/alexander-taran/32/2308_2.png) [@Alexander-Taran](https://discourse.aurelia.io/u/Alexander-Taran)\
**Post date:** [March 6, 2018, 9:41pm UTC](https://discourse.aurelia.io/t/skeletons-on-master-branch-vs-download-link/867/9 "2018-03-06T21:41:07Z")

</div>

@guy.jacks, have a look at this… might be relevant to your case about karma

> <https://github.com/aurelia/testing/issues/71>

---

<div class="post-metadata">

**Author:** ![guy.jacks](https://avatars.discourse-cdn.com/v4/letter/g/839c29/32.png) [@guy.jacks](https://discourse.aurelia.io/u/guy.jacks)\
**Post date:** [March 6, 2018, 9:43pm UTC](https://discourse.aurelia.io/t/skeletons-on-master-branch-vs-download-link/867/10 "2018-03-06T21:43:17Z")

</div>

Here is the vanilla package.json generated by the cli: [https://gist.github.com/c68b1f41079fc4be0f7ad4dbb83a0150](https://gist.github.com/c68b1f41079fc4be0f7ad4dbb83a0150)

---

<div class="post-metadata">

**Author:** ![Alexander-Taran](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.aurelia.io/alexander-taran/32/2308_2.png) [@Alexander-Taran](https://discourse.aurelia.io/u/Alexander-Taran)\
**Post date:** [March 6, 2018, 9:47pm UTC](https://discourse.aurelia.io/t/skeletons-on-master-branch-vs-download-link/867/11 "2018-03-06T21:47:02Z")

</div>

remove this

```auto
 "moduleNameMapper": {
      "aurelia-(.*)": "<rootDir>/node_modules/$1"
    },

```

and check "/test/jest-pretest.js"  
should look like this

```auto
import 'aurelia-polyfills';
import {Options} from 'aurelia-loader-nodejs';
import {globalize} from 'aurelia-pal-nodejs';
import * as path from 'path';
Options.relativeToDir = path.join(__dirname, 'unit');
globalize();

```

where do you have your .spec files?

---

<div class="post-metadata">

**Author:** ![zewa666](https://yyz1.discourse-cdn.com/flex027/user_avatar/discourse.aurelia.io/zewa666/32/19_2.png) [@zewa666](https://discourse.aurelia.io/u/zewa666)\
**Post date:** [March 6, 2018, 9:57pm UTC](https://discourse.aurelia.io/t/skeletons-on-master-branch-vs-download-link/867/12 "2018-03-06T21:57:43Z")

</div>

Had a similar issue with the modulenamemapper over at the Store plugin, maybe my fix works for you as well [https://github.com/zewa666/aurelia-store/blob/master/package.json](https://github.com/zewa666/aurelia-store/blob/master/package.json)
