0

I'm following the tutorial to a T. The only thing that could possibly be out of the ordinary is that I'm setting up Apostrophe under Linux (Fedora). I installed the dependencies save for one:

npm WARN optional Skipping failed optional dependency /chokidar/fsevents:
npm WARN notsup Not compatible with your operating system or architecture: fsevents@1.0.15

Even with that though, everything's been going fine till I get to adding a new template. I copy and paste the text, making sure that it goes under modules but Apostrophe won't start after saving app.js. I get this error when attempting to start it:

/var/www/html/comma/app.js:32
    'apostrophe-pages': {
    ^^^^^^^^^^^^^^^^^^

SyntaxError: Unexpected string
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:374:25)
    at Object.Module._extensions..js (module.js:417:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Function.Module.runMain (module.js:442:10)
    at startup (node.js:136:18)
    at node.js:966:3

npm ERR! Linux 4.8.0-27-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "start"
npm ERR! node v4.2.6
npm ERR! npm  v3.5.2

Unexpected string? I know what it means but I don't know what I'm doing wrong.

EDIT : app.js file as requested:

var apos = require('apostrophe')({
    shortName: 'comma',
    title: 'comma',

    // These are the modules we want to bring into the project.
    modules: {
        // This configures the apostrophe-users module to add an admin-level
        // group by default
        'apostrophe-users': {
            groups: [{
                title: 'guest',
                permissions: []
            }, {
                title: 'admin',
                permissions: ['admin']
            }]
        },
        // This configures the apostrophe-assets module to push a 'site.less'
        // stylesheet by default
        'apostrophe-assets': {
            stylesheets: [{
                name: 'site'
            }]
        }
        // Add your modules and their respective configuration here!

        'apostrophe-pages': {
            types: [{
                name: 'default',
                label: 'Default'
            }, {
                name: 'home',
                label: 'Home'
            }, ]
        }
    }

});

1 Answers1

3

Looks like you're just missing a comma in app.js.

Add one between the closing bracket for 'apostrophe-assets', (}), and 'apsotrophe-pages':.

Here's the updated app.js:

var apos = require('apostrophe')({
  shortName: 'comma',
  title: 'comma',

  // These are the modules we want to bring into the project.
  modules: {
    // This configures the apostrophe-users module to add an admin-level
    // group by default
    'apostrophe-users': {
        groups: [{
            title: 'guest',
            permissions: []
        }, {
            title: 'admin',
            permissions: ['admin']
        }]
    },
    // This configures the apostrophe-assets module to push a 'site.less'
    // stylesheet by default
    'apostrophe-assets': {
        stylesheets: [{
            name: 'site'
        }]
    },
    // Add your modules and their respective configuration here!

    'apostrophe-pages': {
        types: [{
            name: 'default',
            label: 'Default'
        }, {
            name: 'home',
            label: 'Home'
        }, ]
    }
  }
});
mac
  • 858
  • 1
  • 6
  • 11