Uploaded image for project: 'BookBrainz'
  1. BookBrainz
  2. BB-338

Make build process explicitly fail if there is an error transpiling the JS source

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Invalid
    • Icon: High High
    • None
    • None
    • None

      Currently, it seems that an error thrown by the `build-client-js` npm script (see package.json) does not stop the build process or error in any meaningful way, allowing the website to continue getting up with malformed code.
      Here are some logs where this happened. Notice the `Parse error` in the middle, and the fact that the webserver is up and running at the end

      ```

      > bbsite@0.0.0 prestart /home/bookbrainz/bookbrainz-site
      > npm run build-less & npm run build-client-js & npm run build-server-js

      > bbsite@0.0.0 build-server-js /home/bookbrainz/bookbrainz-site
      > babel src --out-dir lib

      > bbsite@0.0.0 build-less /home/bookbrainz/bookbrainz-site
      > ./scripts/build-less.sh

      > bbsite@0.0.0 build-client-js /home/bookbrainz/bookbrainz-site
      > ./scripts/build-client-js.sh

      /home/bookbrainz/bookbrainz-site/src/client/controllers /home/bookbrainz/bookbrainz-site
      src/client/components/entity-link.js -> lib/client/components/entity-link.js
      src/client/components/footer.js -> lib/client/components/footer.js
      src/client/components/forms/deletion.js -> lib/client/components/forms/deletion.js
      src/client/components/forms/parts/achievement.js -> lib/client/components/forms/parts/achievement.js
      src/client/components/forms/profile.js -> lib/client/components/forms/profile.js
      src/client/components/forms/registration-details.js -> lib/client/components/forms/registration-details.js
      src/client/components/input/drag-and-drop-image.js -> lib/client/components/input/drag-and-drop-image.js
      src/client/components/input/drag-and-drop.js -> lib/client/components/input/drag-and-drop.js
      /home/bookbrainz/bookbrainz-site
      src/client/components/input/entity-search.js -> lib/client/components/input/entity-search.js
      src/client/components/input/partial-date.js -> lib/client/components/input/partial-date.js
      src/client/components/input/select-wrapper.js -> lib/client/components/input/select-wrapper.js
      src/client/components/loading-spinner.js -> lib/client/components/loading-spinner.js
      src/client/components/pages/about.js -> lib/client/components/pages/about.js
      src/client/components/pages/contribute.js -> lib/client/components/pages/contribute.js
      src/client/components/pages/develop.js -> lib/client/components/pages/develop.js
      src/client/components/pages/entities/creator.js -> lib/client/components/pages/entities/creator.js
      src/client/components/pages/entities/edition-table.js -> lib/client/components/pages/entities/edition-table.js
      src/client/components/pages/entities/edition.js -> lib/client/components/pages/entities/edition.js
      src/client/components/pages/entities/footer.js -> lib/client/components/pages/entities/footer.js
      src/client/components/pages/entities/identifiers-links.js -> lib/client/components/pages/entities/identifiers-links.js
      src/client/components/pages/entities/identifiers.js -> lib/client/components/pages/entities/identifiers.js
      src/client/components/pages/entities/image.js -> lib/client/components/pages/entities/image.js
      src/client/components/pages/entities/links.js -> lib/client/components/pages/entities/links.js
      src/client/components/pages/entities/publication.js -> lib/client/components/pages/entities/publication.js
      src/client/components/pages/entities/publisher.js -> lib/client/components/pages/entities/publisher.js
      src/client/components/pages/entities/relationships.js -> lib/client/components/pages/entities/relationships.js
      src/client/components/pages/entities/title.js -> lib/client/components/pages/entities/title.js
      src/client/components/pages/entities/work-table.js -> lib/client/components/pages/entities/work-table.js
      src/client/components/pages/entities/work.js -> lib/client/components/pages/entities/work.js
      src/client/components/pages/entity/creator.js -> lib/client/components/pages/entity/creator.js
      src/client/components/pages/entity/edition.js -> lib/client/components/pages/entity/edition.js
      src/client/components/pages/entity/publication.js -> lib/client/components/pages/entity/publication.js
      src/client/components/pages/entity/publisher.js -> lib/client/components/pages/entity/publisher.js
      src/client/components/pages/entity/work.js -> lib/client/components/pages/entity/work.js
      src/client/components/pages/entity-revisions.js -> lib/client/components/pages/entity-revisions.js
      src/client/components/pages/error.js -> lib/client/components/pages/error.js
      src/client/components/pages/help.js -> lib/client/components/pages/help.js
      src/client/components/pages/index.js -> lib/client/components/pages/index.js
      src/client/components/pages/licensing.js -> lib/client/components/pages/licensing.js
      src/client/components/pages/parts/attribute-list.js -> lib/client/components/pages/parts/attribute-list.js
      src/client/components/pages/parts/editor-achievements.js -> lib/client/components/pages/parts/editor-achievements.js
      src/client/components/pages/parts/editor-profile.js -> lib/client/components/pages/parts/editor-profile.js
      src/client/components/pages/parts/editor-revisions.js -> lib/client/components/pages/parts/editor-revisions.js
      src/client/components/pages/parts/search-field.js -> lib/client/components/pages/parts/search-field.js
      src/client/components/pages/parts/search-results.js -> lib/client/components/pages/parts/search-results.js
      src/client/components/pages/privacy.js -> lib/client/components/pages/privacy.js
      src/client/components/pages/registration-auth.js -> lib/client/components/pages/registration-auth.js
      src/client/components/pages/revision.js -> lib/client/components/pages/revision.js
      src/client/components/pages/search.js -> lib/client/components/pages/search.js
      src/client/components/pages/statistics.js -> lib/client/components/pages/statistics.js
      src/client/containers/editor.js -> lib/client/containers/editor.js
      src/client/containers/entity.js -> lib/client/containers/entity.js
      src/client/containers/layout.js -> lib/client/containers/layout.js
      src/client/controllers/deletion.js -> lib/client/controllers/deletion.js
      src/client/controllers/editor/achievement.js -> lib/client/controllers/editor/achievement.js
      src/client/controllers/editor/edit.js -> lib/client/controllers/editor/edit.js
      src/client/controllers/editor/editor.js -> lib/client/controllers/editor/editor.js
      src/client/controllers/entity/entity.js -> lib/client/controllers/entity/entity.js
      src/client/controllers/index.js -> lib/client/controllers/index.js
      src/client/controllers/registrationDetails.js -> lib/client/controllers/registrationDetails.js
      src/client/controllers/revision.js -> lib/client/controllers/revision.js
      src/client/controllers/search.js -> lib/client/controllers/search.js
      src/client/controllers/statistics.js -> lib/client/controllers/statistics.js
      src/client/entity-editor/alias-editor/actions.js -> lib/client/entity-editor/alias-editor/actions.js
      src/client/entity-editor/alias-editor/alias-editor.js -> lib/client/entity-editor/alias-editor/alias-editor.js
      src/client/entity-editor/alias-editor/alias-row.js -> lib/client/entity-editor/alias-editor/alias-row.js
      src/client/entity-editor/alias-editor/reducer.js -> lib/client/entity-editor/alias-editor/reducer.js
      src/client/entity-editor/button-bar/actions.js -> lib/client/entity-editor/button-bar/actions.js
      src/client/entity-editor/button-bar/alias-button.js -> lib/client/entity-editor/button-bar/alias-button.js
      src/client/entity-editor/button-bar/button-bar.js -> lib/client/entity-editor/button-bar/button-bar.js
      src/client/entity-editor/button-bar/identifier-button.js -> lib/client/entity-editor/button-bar/identifier-button.js
      src/client/entity-editor/button-bar/reducer.js -> lib/client/entity-editor/button-bar/reducer.js
      src/client/entity-editor/common/date-field.js -> lib/client/entity-editor/common/date-field.js
      src/client/entity-editor/common/entity-search-field.js -> lib/client/entity-editor/common/entity-search-field.js
      src/client/entity-editor/common/entity.js -> lib/client/entity-editor/common/entity.js
      src/client/entity-editor/common/language-field.js -> lib/client/entity-editor/common/language-field.js
      src/client/entity-editor/common/make-immutable.js -> lib/client/entity-editor/common/make-immutable.js
      src/client/entity-editor/common/name-field.js -> lib/client/entity-editor/common/name-field.js
      src/client/entity-editor/common/numeric-field.js -> lib/client/entity-editor/common/numeric-field.js
      src/client/entity-editor/common/sort-name-field.js -> lib/client/entity-editor/common/sort-name-field.js
      src/client/entity-editor/common/validation-label.js -> lib/client/entity-editor/common/validation-label.js
      src/client/entity-editor/controller.js -> lib/client/entity-editor/controller.js
      src/client/entity-editor/creator-section/actions.js -> lib/client/entity-editor/creator-section/actions.js
      src/client/entity-editor/creator-section/creator-section.js -> lib/client/entity-editor/creator-section/creator-section.js
      src/client/entity-editor/creator-section/reducer.js -> lib/client/entity-editor/creator-section/reducer.js
      src/client/entity-editor/edition-section/actions.js -> lib/client/entity-editor/edition-section/actions.js
      Parse error at ../../../static/js/deletion.js:1,8
      require=
      ^
      ERROR: Unexpected token: eof (undefined)
      at JS_Parse_Error.get (eval at <anonymous> (/home/bookbrainz/bookbrainz-site/node_modules/uglify-js/tools/node.js:20:1), <anonymous>:71:23)
      at fatal (/home/bookbrainz/bookbrainz-site/node_modules/uglify-js/bin/uglifyjs:291:53)
      at run (/home/bookbrainz/bookbrainz-site/node_modules/uglify-js/bin/uglifyjs:235:9)
      at Object.<anonymous> (/home/bookbrainz/bookbrainz-site/node_modules/uglify-js/bin/uglifyjs:160:5)
      at Module._compile (internal/modules/cjs/loader.js:701:30)
      at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
      at Module.load (internal/modules/cjs/loader.js:600:32)
      at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
      at Function.Module._load (internal/modules/cjs/loader.js:531:3)
      at Function.Module.runMain (internal/modules/cjs/loader.js:754:12)
      src/client/entity-editor/edition-section/edition-section.js -> lib/client/entity-editor/edition-section/edition-section.js
      src/client/entity-editor/edition-section/reducer.js -> lib/client/entity-editor/edition-section/reducer.js
      src/client/entity-editor/entity-editor.js -> lib/client/entity-editor/entity-editor.js
      src/client/entity-editor/helpers.js -> lib/client/entity-editor/helpers.js
      src/client/entity-editor/identifier-editor/actions.js -> lib/client/entity-editor/identifier-editor/actions.js
      src/client/entity-editor/identifier-editor/identifier-editor.js -> lib/client/entity-editor/identifier-editor/identifier-editor.js
      src/client/entity-editor/identifier-editor/identifier-row.js -> lib/client/entity-editor/identifier-editor/identifier-row.js
      src/client/entity-editor/identifier-editor/reducer.js -> lib/client/entity-editor/identifier-editor/reducer.js
      src/client/entity-editor/identifier-editor/value-field.js -> lib/client/entity-editor/identifier-editor/value-field.js
      src/client/entity-editor/name-section/actions.js -> lib/client/entity-editor/name-section/actions.js
      src/client/entity-editor/name-section/disambiguation-field.js -> lib/client/entity-editor/name-section/disambiguation-field.js
      src/client/entity-editor/name-section/name-section.js -> lib/client/entity-editor/name-section/name-section.js
      src/client/entity-editor/name-section/reducer.js -> lib/client/entity-editor/name-section/reducer.js
      src/client/entity-editor/publication-section/actions.js -> lib/client/entity-editor/publication-section/actions.js
      src/client/entity-editor/publication-section/publication-section.js -> lib/client/entity-editor/publication-section/publication-section.js
      src/client/entity-editor/publication-section/reducer.js -> lib/client/entity-editor/publication-section/reducer.js
      src/client/entity-editor/publisher-section/actions.js -> lib/client/entity-editor/publisher-section/actions.js
      src/client/entity-editor/publisher-section/publisher-section.js -> lib/client/entity-editor/publisher-section/publisher-section.js
      src/client/entity-editor/publisher-section/reducer.js -> lib/client/entity-editor/publisher-section/reducer.js
      src/client/entity-editor/relationship-editor/actions.js -> lib/client/entity-editor/relationship-editor/actions.js
      src/client/entity-editor/relationship-editor/reducer.js -> lib/client/entity-editor/relationship-editor/reducer.js
      src/client/entity-editor/relationship-editor/relationship-editor.js -> lib/client/entity-editor/relationship-editor/relationship-editor.js
      src/client/entity-editor/relationship-editor/relationship-section.js -> lib/client/entity-editor/relationship-editor/relationship-section.js
      src/client/entity-editor/relationship-editor/relationship.js -> lib/client/entity-editor/relationship-editor/relationship.js
      src/client/entity-editor/relationship-editor/types.js -> lib/client/entity-editor/relationship-editor/types.js
      src/client/entity-editor/submission-section/actions.js -> lib/client/entity-editor/submission-section/actions.js
      src/client/entity-editor/submission-section/reducer.js -> lib/client/entity-editor/submission-section/reducer.js
      src/client/entity-editor/submission-section/submission-section.js -> lib/client/entity-editor/submission-section/submission-section.js
      src/client/entity-editor/validators/base.js -> lib/client/entity-editor/validators/base.js
      src/client/entity-editor/validators/common.js -> lib/client/entity-editor/validators/common.js
      src/client/entity-editor/validators/creator.js -> lib/client/entity-editor/validators/creator.js
      src/client/entity-editor/validators/edition.js -> lib/client/entity-editor/validators/edition.js
      src/client/entity-editor/validators/publication.js -> lib/client/entity-editor/validators/publication.js
      src/client/entity-editor/validators/publisher.js -> lib/client/entity-editor/validators/publisher.js
      src/client/entity-editor/validators/work.js -> lib/client/entity-editor/validators/work.js
      src/client/entity-editor/work-section/actions.js -> lib/client/entity-editor/work-section/actions.js
      src/client/entity-editor/work-section/reducer.js -> lib/client/entity-editor/work-section/reducer.js
      src/client/entity-editor/work-section/work-section.js -> lib/client/entity-editor/work-section/work-section.js
      src/client/helpers/data.js -> lib/client/helpers/data.js
      src/client/helpers/entity.js -> lib/client/helpers/entity.js
      src/client/helpers/props.js -> lib/client/helpers/props.js
      src/client/helpers/react-validators.js -> lib/client/helpers/react-validators.js
      src/client/helpers/utils.js -> lib/client/helpers/utils.js
      src/client/input.js -> lib/client/input.js
      src/server/app.js -> lib/server/app.js
      src/server/helpers/achievement.js -> lib/server/helpers/achievement.js
      src/server/helpers/auth.js -> lib/server/helpers/auth.js
      src/server/helpers/config.js -> lib/server/helpers/config.js
      src/server/helpers/diffFormatters/base.js -> lib/server/helpers/diffFormatters/base.js
      src/server/helpers/diffFormatters/entity.js -> lib/server/helpers/diffFormatters/entity.js
      src/server/helpers/diffFormatters/languageSet.js -> lib/server/helpers/diffFormatters/languageSet.js
      src/server/helpers/diffFormatters/publisherSet.js -> lib/server/helpers/diffFormatters/publisherSet.js
      src/server/helpers/diffFormatters/releaseEventSet.js -> lib/server/helpers/diffFormatters/releaseEventSet.js
      src/server/helpers/diffFormatters/set.js -> lib/server/helpers/diffFormatters/set.js
      src/server/helpers/entityRouteUtils.js -> lib/server/helpers/entityRouteUtils.js
      src/server/helpers/error.js -> lib/server/helpers/error.js
      src/server/helpers/handler.js -> lib/server/helpers/handler.js
      src/server/helpers/middleware.js -> lib/server/helpers/middleware.js
      src/server/helpers/props.js -> lib/server/helpers/props.js
      src/server/helpers/render.js -> lib/server/helpers/render.js
      src/server/helpers/search.js -> lib/server/helpers/search.js
      src/server/helpers/utils.js -> lib/server/helpers/utils.js
      src/server/influx.js -> lib/server/influx.js
      src/server/routes/auth.js -> lib/server/routes/auth.js
      src/server/routes/editor.js -> lib/server/routes/editor.js
      src/server/routes/entity/creator.js -> lib/server/routes/entity/creator.js
      src/server/routes/entity/edition.js -> lib/server/routes/entity/edition.js
      src/server/routes/entity/entity.js -> lib/server/routes/entity/entity.js
      src/server/routes/entity/publication.js -> lib/server/routes/entity/publication.js
      src/server/routes/entity/publisher.js -> lib/server/routes/entity/publisher.js
      src/server/routes/entity/work.js -> lib/server/routes/entity/work.js
      src/server/routes/index.js -> lib/server/routes/index.js
      src/server/routes/register.js -> lib/server/routes/register.js
      src/server/routes/revision.js -> lib/server/routes/revision.js
      src/server/routes/search.js -> lib/server/routes/search.js
      src/server/routes/statistics.js -> lib/server/routes/statistics.js
      src/server/routes.js -> lib/server/routes.js
      src/server/templates/target.js -> lib/server/templates/target.js
      src/types.js -> lib/types.js

      > bbsite@0.0.0 start /home/bookbrainz/bookbrainz-site
      > cross-env SSR=true node ./lib/server/app.js

      ```

            Unassigned Unassigned
            mr_monkey Monkey
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved:

                Version Package