egoist / poi

⚡A zero-config bundler for JavaScript applications.
https://poi.js.org
MIT License
5.23k stars 255 forks source link

Multiple copies of vue bundled #509

Closed OmgImAlexis closed 5 years ago

OmgImAlexis commented 5 years ago

Since I upgraded from v10 to v12 I've noticed this 3 times on some of my pages. I had no issues with this before the update.

You are running Vue in development mode.
Make sure to turn on production mode when deploying for production.
See more tips at https://vuejs.org/guide/deployment.html

screen shot 2018-12-22 at 5 13 32 pm

egoist commented 5 years ago

It's really weird since Poi doesn't include vue in its dependencies now.

Can you post your poi.config.js and package.json?

OmgImAlexis commented 5 years ago

My thoughts exactly. I also tried wiping my yarn.lock and node_modules incase something weird happened but no luck.

const path = require('path');

module.exports = {
    entry: path.join(__dirname, 'index.js'),
    devServer: {
        proxy: {
            '/v1': 'http://localhost:9500'
        }
    },
    plugins: [
//      require('@poi/plugin-vue-static')({
            // The routes to generate
            // Only useful for `poi build`
//          routes: ['/'] // Default
//      })
    ]
};
{
 "name": "webui",
 "version": "0.0.0",
 "description": "Unraid webui",
 "main": "index.js",
 "module": "index.js",
 "keywords": [
  "unraid",
  "webui",
  "frontend"
 ],
 "contributors": [
  "Alexis Tyler <xo@wvvw.me> (https://wvvw.me)"
 ],
 "repository": {
  "type": "git",
  "url": "https://github.com/unraid/webui.git"
 },
 "homepage": "https://github.com/unraid/webui",
 "bugs": "https://github.com/unraid/webui/issues",
 "scripts": {
  "test": "xo && ava",
  "coverage": "nyc ava",
  "dev": "poi --serve",
  "build": "poi --prod",
  "docs": "documentation build 'components/**/*.vue' 'directives/**/*.js' 'mixins/**/*.js' 'services/**/*.js' 'utils/**/*.js' -f html -o docs",
  "commit": "npx git-cz",
  "locale": "node node_modules/locale-man/ -l en,de -o locale"
 },
 "devDependencies": {
  "@babel/core": "7.0.0",
  "@babel/plugin-proposal-object-rest-spread": "7.0.0",
  "@babel/plugin-transform-runtime": "^7.1.0",
  "@babel/polyfill": "7.0.0",
  "@babel/preset-env": "7.0.0",
  "@babel/register": "7.0.0",
  "@fortawesome/fontawesome-svg-core": "^1.2.4",
  "@fortawesome/free-solid-svg-icons": "^5.3.1",
  "@fortawesome/vue-fontawesome": "0.1.1",
  "@poi/plugin-vue-static": "1.0.7",
  "@vue/test-utils": "1.0.0-beta.25",
  "animated-number-vue": "^0.1.3",
  "array.prototype.flatmap": "^1.2.1",
  "ava": "1.0.1",
  "babel-plugin-istanbul": "5.0.1",
  "browser-env": "3.2.5",
  "compact-timezone-list": "1.0.6",
  "date-fns": "1.29.0",
  "documentation": "9.0.0-alpha.0",
  "dot-prop": "4.2.0",
  "eslint-plugin-vue": "4.7.1",
  "esm": "3.0.84",
  "format-number": "3.0.0",
  "isomorphic-fetch": "2.2.1",
  "js-cookie": "2.2.0",
  "jsdoc-vuejs": "^2.3.2",
  "locale-man": "0.0.5",
  "number-to-words": "https://github.com/omgimalexis/number-to-words",
  "nyc": "13.1.0",
  "portal-vue": "1.4.0",
  "pretty-bytes": "5.1.0",
  "require-extension-hooks": "0.3.3",
  "require-extension-hooks-babel": "1.0.0-beta.1",
  "require-extension-hooks-vue": "1.1.0",
  "showdown": "1.8.7",
  "sinon": "^7.1.1",
  "upcast": "4.0.0",
  "uppercamelcase": "3.0.0",
  "v-img-fallback": "https://github.com/OmgImAlexis/v-img-fallback",
  "v-offline": "1.0.10",
  "vue": "^2.5.21",
  "vue-bus": "1.1.0",
  "vue-context-menu": "2.0.6",
  "vue-js-modal": "https://github.com/OmgImAlexis/vue-js-modal",
  "vue-js-toggle-button": "^1.3.1",
  "vue-meta": "1.5.5",
  "vue-object-merge": "https://github.com/OmgImAlexis/vue-object-merge",
  "vue-sweetalert2": "1.5.9",
  "vue-template-compiler": "^2.5.21",
  "vue-visible": "1.0.2",
  "vuex-i18n": "1.10.5",
  "vuex-mock-store": "^0.0.5",
  "vuex-now": "1.0.2",
  "wretch-middlewares": "0.1.4",
  "xo": "0.23.0"
 },
 "dependencies": {
  "country-language": "^0.1.7",
  "deepmerge": "^3.0.0",
  "import-to-array": "^1.0.0",
  "jwt-decode": "^2.2.0",
  "poi": "^12.2.4",
  "random-mac": "^0.0.4",
  "socket.io-client": "^2.2.0",
  "vee-validate": "^2.1.0-beta.8",
  "vue-fragment": "1.2.2",
  "vue-router": "3.0.1",
  "vue-socket.io-extended": "^3.2.0",
  "vuex": "^3.0.1",
  "vuex-forms": "https://github.com/OmgImAlexis/vuex-forms",
  "vuex-persistedstate": "^2.5.4",
  "wretch": "^1.4.0"
 },
 "xo": {
  "extensions": [
   "vue"
  ],
  "envs": [
   "browser"
  ],
  "extends": [
   "plugin:vue/essential"
  ],
  "rules": {
   "object-curly-spacing": [
    "error",
    "always"
   ],
   "space-before-function-paren": [
    "error",
    "never"
   ],
   "unicorn/catch-error-name": [
    "error",
    {
     "name": "error"
    }
   ]
  },
  "esnext": true
 },
 "esm": {
  "cjs": true,
  "mode": "auto"
 },
 "ava": {
  "require": [
   "esm",
   "@babel/register",
   "@babel/polyfill",
   "./test/helpers/setup.js"
  ],
  "files": [
   "test/specs/**/*.spec.js"
  ],
  "sources": [
   "api/**/*.js",
   "components/**/*.js",
   "components/**/*.vue",
   "directives/**/*.js",
   "mixins/**/*.js",
   "router/**/*.js",
   "services/**/*.js",
   "store/**/*.js",
   "utils/**/*.js"
  ],
  "babel": {
   "extensions": [
    "js",
    "vue"
   ],
   "testOptions": {
    "presets": [
     [
      "module:ava/stage-4",
      {
       "modules": true
      }
     ]
    ]
   }
  }
 },
 "nyc": {
  "require": [
   "esm",
   "@babel/register",
   "@babel/polyfill"
  ],
  "include": [
   "api/**/*.js",
   "components/**/*.js",
   "components/**/*.vue",
   "directives/**/*.js",
   "mixins/**/*.js",
   "router/**/*.js",
   "services/**/*.js",
   "store/**/*.js",
   "utils/**/*.js"
  ],
  "sourceMap": false,
  "instrument": false,
  "extensions": [
   ".vue"
  ],
  "reporter": [
   "lcov",
   "text"
  ]
 },
 "browser": {
  "fs": false
 }
}
OmgImAlexis commented 5 years ago

So this looks like a problem with vue-object-merge, it's forcing poi to include vue. I'll fix this.