Plugins and Entry.js



  • I’ve followed instructions and created 7 plugins (source in src/plugins) and defined them in quasar.conf.js. Note: I didn’t run ‘quasar new plugin …’ for each plugin - I simply created the .js source.

    module.exports = function (ctx) {
    return {
    plugins: [
    ‘axios’,
    ‘vuelidate’,
    ‘vuemask’,
    ‘analytics’,
    ‘idlevue’,
    ‘logger’,
    ‘vueapexcharts’
    ],

    It’s interesting that only 5 of them appear in the auto-generated ./quasar/entry.js - the last two (logger/vueapexcharts) don’t.

    const plugins = []
    import pluginAxios from 'src/plugins/axios’
    plugins.push(pluginAxios)
    import pluginVuelidate from 'src/plugins/vuelidate’
    plugins.push(pluginVuelidate)
    import pluginVuemask from 'src/plugins/vuemask’
    plugins.push(pluginVuemask)
    import pluginAnalytics from 'src/plugins/analytics’
    plugins.push(pluginAnalytics)
    import pluginIdlevue from 'src/plugins/idlevue’
    plugins.push(pluginIdlevue)
    plugins.forEach(plugin => plugin({ app, router, store, Vue }))

    Why aren’t the logger and vueapexcharts defined in the same way in entry.js?

    Any help is appreciated.

    Here’s the source for logger.js

    // https://github.com/justinkames/vuejs-logger
    // from within a Vue component - this.$log.debug(‘test’, this.a, 123)
    import VueLogger from ‘vuejs-logger’;
    export default ({ app, router, store, Vue }) => {
    const isProduction = process.env.NODE_ENV === ‘production’;
    const options = {
    isEnabled: true,
    logLevel: isProduction ? ‘error’ : ‘debug’,
    stringifyArguments: false,
    showLogLevel: true,
    showMethodName: true,
    separator: ‘|’,
    showConsoleColors: true
    };
    Vue.use(VueLogger, options);
    };

    Here’s the source for vueapexcharts.js

    // https://github.com/apexcharts/vue-apexcharts
    import VueApexCharts from ‘vue-apexcharts’;
    export default ({ app, router, store, Vue }) => {
    Vue.use(VueApexCharts);
    Vue.component(‘apexcharts’, VueApexCharts);
    };



  • Just for my curiosity, put the last two at the top of the plugins array and see what happens.

    Scott



  • @s-molinari - Intereresting. (1) I moved the last two (logger/vueapexcharts) to the top of the plugins array, and shuffled the order of the rest. (2) ran ‘quasar dev’ - there were no changes made to the entry.js file. (3) ran ‘quasar build’ - there were no changes made to the entry.js file.

    I expected the entry.js file to be changed/updated.

    quasar-cli version 0.17.20
    quasar-framework version 0.17.17



  • Hmm…interesting. And when you only do one plugin at a time? Maybe also play with the files i.e. remove one or more files, which you haven’t listed in quasar.conf.js.

    Scott



  • @s-molinari I imagined that the entry.js file would be rebuilt on each build, and that it’s contents would reflect directly the plugins as defined in quasar.conf.js. That doesn’t appear to be the case.



  • And why I suggested to try and remove the actual plugin files. Did you try that?

    Scott


  • Admin

    @jeffatpf the entry.js IS being rewritten on each quasar dev/build. Any chance I can take a look at your repo? Must be some bug outside of Quasar CLI, just don’t know what.



  • @rstoenescu - I’ve been using Quasar since it’s early days on this project. In this project there is a file ./quasar/entry.js that is not rewritten on each quasar dev/build.

    I just created a new quasar project and there is no ./quasar/entry.js - there is a ./quasar/client-entry.js that is rewritten on each quasar dev/build.

    I removed the .quasar/entry.js in my project and rebuilt - a ./quasar/client-entry.js appeared that is rewritten on each quasar dev/build.

    Interesting.