0

Hi I have a web app built over the Aurelia CLI. To fix a performance problem (that I addressed here) I updated to the latest version of Aurelia (0.30.1, which fixed the performance issue). To do so, I had to update other npm packages, forcing the semver to the latest versions available using the npm-check-updates package first

npm install -g npm-check-updates
ncu --upgrade
npm update
npm install babel-runtime --save-dev
npm install timers-ext --save-dev
npm install gulp-sourcemaps --save-dev
npm install aurelia-pal --save-dev
npm install aurelia-binding --save-dev
npm install aurelia-templating --save-dev

this is my aurelia.json file

{
 "name": "XX.YY.Web",
  "type": "project:application",
  "platform": {
    "id": "web",
    "displayName": "Web",
    "output": "scripts",
    "index": "index.html"
  },
  "transpiler": {
    "id": "babel",
    "displayName": "Babel",
    "fileExtension": ".js",
    "options": {
      "plugins": [
        "transform-es2015-modules-amd"
      ]
    },
    "source": "src\\**\\*.js"
  },
  "markupProcessor": {
    "id": "none",
    "displayName": "None",
    "fileExtension": ".html",
    "source": "src\\**\\*.html"
  },
  "cssProcessor": {
    "id": "none",
    "displayName": "None",
    "fileExtension": ".css",
    "source": "src\\**\\*.css"
  },
  "editor": {
    "id": "vscode",
    "displayName": "Visual Studio Code"
  },
  "unitTestRunner": {
    "id": "karma",
    "displayName": "Karma",
    "source": "test\\unit\\**\\*.js"
  },
  "paths": {
    "root": "src"
  },
  "testFramework": {
    "id": "jasmine",
    "displayName": "Jasmine"
  },
  "build": {
    "targets": [
      {
        "id": "web",
        "displayName": "Web",
        "output": "scripts",
        "index": "scripts/index.html",
        "useAbsolutePath": true
      }
    ],
    "loader": {
      "type": "require",
      "configTarget": "vendor-bundle.js",
      "includeBundleMetadataInConfig": "auto",
      "config": {
        "waitSeconds": 0,
        "paths": {
          "jquery": "../scripts/lib/cdn/jquery-3.1.0.min",
          "breeze-client":  "../node_modules/breeze-client/breeze.debug"
        }
      },
      "plugins": [
        {
          "name": "text",
          "extensions": [
            ".html",
            ".css"
          ],
          "stub": true
        }
      ]
    },
    "options": {
      "minify": "stage & prod",
      "sourcemaps": "dev & stage",
      "rev": "stage & prod"
    },
    "bundles": [
      {
        "name": "app-bundle.js",        
        "source": [
          "[**/*.js]",
          "**/*.{css,html}"
        ]
      },
      {
        "name": "vendor-bundle.js",
        "prepend": [
          "node_modules/bluebird/js/browser/bluebird.core.js",          
          "scripts/lib/require.js"
        ],
        "dependencies": [
          "aurelia-binding",
          "aurelia-bootstrapper",
          "aurelia-dependency-injection",
          "aurelia-event-aggregator",
          "aurelia-fetch-client",
          "aurelia-framework",
          "aurelia-history",
          "aurelia-history-browser",
          "aurelia-loader",
          "aurelia-loader-default",
          "aurelia-logging",
          "aurelia-logging-console",
          "aurelia-metadata",
          "aurelia-pal",
          "aurelia-pal-browser",
          "aurelia-path",
          "aurelia-polyfills",
          "aurelia-route-recognizer",
          "aurelia-router",
          "aurelia-task-queue",
          "aurelia-templating",
          "aurelia-templating-binding",
          {
            "name": "text",
            "path": "../scripts/lib/text",
            "packageRoot":  "../scripts/lib"
          },
          {
            "name": "aurelia-templating-resources",
            "path": "../node_modules/aurelia-templating-resources/dist/amd",
            "main": "aurelia-templating-resources"
          },
          {
            "name": "aurelia-templating-router",
            "path": "../node_modules/aurelia-templating-router/dist/amd",
            "main": "aurelia-templating-router"
          },
          {
            "name": "aurelia-breeze",
            "path": "../node_modules/aurelia-breeze/dist/amd",
            "main": "aurelia-breeze"
          },
          {
            "name": "breeze-client",
            "path": "../node_modules/breeze-client",
            "main": "breeze.debug"
          },
          {
            "name": "whatwg-fetch",
            "path": "../node_modules/whatwg-fetch",
            "main": "fetch"
          },
          {
            "name": "aurelia-testing",
            "path": "../node_modules/aurelia-testing/dist/amd",
            "main": "aurelia-testing",
            "env": "dev"
          },
          {
            "name": "icheck",
            "path": "../node_modules/icheck",
            "main": "icheck.min"
          },
          {
            "name": "filesaver.js",
            "path": "../node_modules/filesaver.js",
            "main": "FileSaver.min"
          }
        ]
      }
    ]
  }
}

I have now a problem. If I run

au build 

or

au run –watch

I have no problem. If I run

au build –env prod

to create the app- and vendor-bundle-[identifier].js, I don’t get any errors, but both files end up created empty, or rather just with “undefined” in them.

Node.js version: 6.11.2 (current latest stable)

NPM version: 3.10.10

Does anyone have an idea? Does it have to do with the minification mechanism (which in dev does not happen)

How can I debug / log what is going wrong?

UPDATE:

I have activated minifying also for the dev environment in the aurelia.json file, this is what I got

Failed to write the bundle
SyntaxError: Unexpected token u in JSON at position 0
    at Object.parse (native)
    at new Converter (E:\Code\Application\XX-dev\XX.YY.Web\node_modules\aurelia-cli\lib\build\convert-source-map\index.js:42:48)
    at Object.exports.fromJSON (E:\Code\Application\XX-dev\XX.YY.Web\node_modules\aurelia-cli\lib\build\convert-source-map\index.js:96:10)
    at work.then (E:\Code\Application\XX-dev\XX.YY.Web\node_modules\aurelia-cli\lib\build\bundle.js:259:48)
    at process._tickDomainCallback (internal/process/next_tick.js:135:7)
{ uid: 8,
  name: 'writeBundles',
  branch: false,
  error:
   SyntaxError: Unexpected token u in JSON at position 0
       at Object.parse (native)
       at new Converter (E:\Code\Application\XX-dev\XX.YY.Web\node_modules\aurelia-cli\lib\build\convert-source-map\index.js:42:48)
       at Object.exports.fromJSON (E:\Code\Application\XX-dev\XX.YY.Web\node_modules\aurelia-cli\lib\build\convert-source-map\index.js:96:10)
       at work.then (E:\Code\Application\XX-dev\XX.YY.Web\node_modules\aurelia-cli\lib\build\bundle.js:259:48)
       at process._tickDomainCallback (internal/process/next_tick.js:135:7),
  duration: [ 5, 639721541 ],
  time: 1502969144275 }
{ uid: 0,
  name: '<series>',
  branch: true,
  error:
   SyntaxError: Unexpected token u in JSON at position 0
       at Object.parse (native)
       at new Converter (E:\Code\Application\XX-dev\XX.YY.Web\node_modules\aurelia-cli\lib\build\convert-source-map\index.js:42:48)
       at Object.exports.fromJSON (E:\Code\Application\XX-dev\XX.YY.Web\node_modules\aurelia-cli\lib\build\convert-source-map\index.js:96:10)
       at work.then (E:\Code\Application\XX-dev\XX.YY.Web\node_modules\aurelia-cli\lib\build\bundle.js:259:48)
       at process._tickDomainCallback (internal/process/next_tick.js:135:7),
  duration: [ 47, 444524559 ],
  time: 1502969144277 }
SyntaxError: Unexpected token u in JSON at position 0
    at Object.parse (native)
    at new Converter (E:\Code\Application\XX-dev\XX.YY.Web\node_modules\aurelia-cli\lib\build\convert-source-map\index.js:42:48)
    at Object.exports.fromJSON (E:\Code\Application\XX-dev\XX.YY.Web\node_modules\aurelia-cli\lib\build\convert-source-map\index.js:96:10)
    at work.then (E:\Code\Application\XX-dev\XX.YY.Web\node_modules\aurelia-cli\lib\build\bundle.js:259:48)
    at process._tickDomainCallback (internal/process/next_tick.js:135:7)

If I activate minification for dev, it doesn't work either, giving the error I pasted above. If I also remove sourcemaps, it doesn't work (undefined by both bundles) but no error message.

Mirko Lugano
  • 975
  • 1
  • 11
  • 26

2 Answers2

0

Upgrading to the latest version of the aurelia-cli npm module (0.31.3) and all other modules to their latest versions fixed the issue.

Mirko Lugano
  • 975
  • 1
  • 11
  • 26
-1

I think you can now just do au build (without the --env prod flags.

LStarky
  • 2,740
  • 1
  • 17
  • 47
  • thanx for the hint but no, the problem only occurs in prod and I think it is caused by minification, because if I turn it on also for dev it doesn't work either – Mirko Lugano Aug 17 '17 at 11:33
  • Sorry, I also should have left this as a comment rather than an answer since it was just a guess. – LStarky Aug 17 '17 at 11:36