【问题标题】:PhantomJS throws error in vuePhantomJS 在 vue 中抛出错误
【发布时间】:2017-06-14 12:57:29
【问题描述】:

我正在使用 webpack 模板来构建一个 vuejs 应用程序。 问题是当我尝试运行单元测试时(现在只是默认的......)PhantomJS 抛出这个错误:

PhantomJS 2.1.1 (Mac OS X 0.0.0) ERROR
  TypeError: undefined is not a constructor (evaluating 'val.toLowerCase()')
  at webpack:///~/vue/dist/vue.esm.js:89:0 <- index.js:13783

错误是指 Vue 库,所以应用程序的代码肯定有问题。 一点上下文:我正在创建一个 vue 组件的展示,所以我配置 webpack 以跳过生产中构建的很多文件/文件夹,因为它们只是组件的展示,而我只想要我的产品中的核心组件构建。

所以结构文件夹如下:

src
|----components
|----main.js
|----assets.js
|----App.vue
|----core
     |----coreComponents
     |----mainProdBuilder.js
     |----coreAssets.js

如果我导入所有组件,并且如果我将所有内容与“main.js”捆绑在一起作为入口点,我可以毫无问题地运行测试,但是,一旦我尝试使用 mainProdBuilder 脚本捆绑生产文件,我就会得到错误。这是脚本:

import Vue from "vue";

import MyTable from "./Table/Table";
import FormatNumber from "./numberFormatting";
import TotalValue from "./TotalValue";
import MyTitle from "./Title/Title";
import TestTitle from "./Title/TestTitle";
import BarChart from "./Charts/BarChart";
import Histogram from "./Charts/Histogram";

Vue.component(MyTable,
    MyTitle,
    TestTitle,
    BarChart,
    TotalValue,
    Histogram,
 );

请注意,如果我评论所有 vue 组件,一次只留下一个组件,它可以工作。因此,例如这是有效的:

import Vue from "vue";

import MyTable from "./Table/Table";

Vue.component(
    MyTable,
 );

这也有效:

import Vue from "vue";

import Histogram from "./Charts/Histogram";

Vue.component(
    Histogram,
 );

但这会引发错误:

import Vue from "vue";

import MyTable from "./Table/Table";
import Histogram from "./Charts/Histogram";

Vue.component(
    MyTable,
    Histogram
 );    

我错过了什么?

【问题讨论】:

    标签: javascript webpack phantomjs vue.js


    【解决方案1】:

    Vue.component() 需要一个id(即组件的名称)和一个object definition,您不能将所有全局组件注册在一起(尽管您可以为本地组件注册),您需要注册他们分开:

    import MyTable from "./Table/Table";
    import FormatNumber from "./numberFormatting";
    //etc...    
    
    Vue.component('my-table', MyTable);
    Vue.component('format-number', FormatNumber);
    //etc...
    

    如果您尝试使用Vue.component 注册它们,则会收到您收到的错误,您可以在this JSFiddle 中看到该错误

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-24
      • 2016-03-06
      • 1970-01-01
      • 2017-04-02
      • 2021-12-22
      • 1970-01-01
      • 2019-04-07
      • 2020-06-26
      相关资源
      最近更新 更多