当前位置: 首页 > 知识库问答 >
问题:

如何在没有vue cli的情况下使用vue loader

田嘉澍
2023-03-14

我正在尝试将使用webpack转译. vue文件的Vue项目的绝对最低示例放在一起。

我的目标是详细了解每个构建步骤。大多数教程建议使用vue cli并使用webpack simpleconfig。尽管这种设置很有效,但对于我的简单目的来说,似乎有些过头了。目前,我不想要babel、linting或带有热模块重新加载的实时web服务器。

一个简单的例子,只需从“Vue”导入Vue就可以了!Webpack将vue库和我自己的代码编译成一个包。

但现在,我想将vue loader添加到webpack配置中,以便。vue文件将被传输。我已安装vue loader:

npm install vue-loader
npm install css-loader
npm install vue-template-compiler 

并且我已将vue-loader添加到webpack配置:

var path = require('path')

module.exports = {
  entry: './dev/app.js',
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist')
  },
  module: {
    rules: [
      {
        test: /\.vue$/,
        loader: 'vue-loader',
        options: {
          loaders: {
          }
        }
      }
    ]
  },
  resolve: {
    alias: {
      'vue$': 'vue/dist/vue.esm.js'
    }
  }
};

我创造了你好。vue

<template>
  <p>{{greeting}} World</p>
</template>

<script>
export default {
    data:function(){
        return {
            greeting:"Hi there"
        }
    }
}
</script>

在我的应用程序中,我导入了“你好”

import Vue from 'vue'
import hello from "./hello.vue";

    new Vue({
      el: '#app',
      template:`<div><hello></hello></div>`,
      created: function () {   
        console.log("Hey, a vue app!")
      }
    })

加载程序似乎没有拾取. vue文件,我得到错误:

Module not found: Error: Can't resolve './hello.js' 

编辑

当尝试从'hello.vue'导入你好时,我得到错误:

Unknown custom element: <hello> - did you register the component correctly?

我漏了一步吗?我是不是在进口。vue组件的正确方式?我该如何使用hello。应用程序中的vue组件。js?

共有3个答案

冀啸
2023-03-14

这里还有@Lukebarden和@thanksd的更多信息。从头开始建立一个Vue应用程序,它是基本的,我一路上删除了一些样式,因为我不想处理它:但它编译了JS:

https://github.com/ed42311/gu-vue-app

可以确认插件,我还没有添加解决方案,但现在我会:)

如果你有任何想法,请告诉我。

董洲
2023-03-14

除了@thanksd回答:

从vue loader v15开始,需要一个插件:

// webpack.config.js
const VueLoaderPlugin = require('vue-loader/lib/plugin')

module.exports = {
  module: {
    rules: [
      // ... other rules
      {
        test: /\.vue$/,
        loader: 'vue-loader'
      }
    ]
  },
  plugins: [
    // make sure to include the plugin!
    new VueLoaderPlugin()
  ]
}

https://vue-loader.vuejs.org/guide/

丘向荣
2023-03-14

首先,您没有正确导入文件。您应该这样导入它:

import Hello from './hello.vue'

其次,导入组件后,您仍然需要以某种方式注册它。要么全局Vue.component('hello', Hello)执行此操作,要么在Vue实例上执行此操作:

new Vue({
  el: '#app',
  template:`<div><hello></hello></div>`,
  components: { 'hello': Hello },
  created: function () {   
    console.log("Hey, a vue app!")
  }
})

作为补充说明,如果您希望能够导入文件而不必指定。vue扩展,您可以指定。vue扩展名应该在配置文件中解析。

在这种情况下,配置文件中的解析对象应该如下所示:

resolve: {
  alias: {
    'vue$': 'vue/dist/vue.esm.js'
  },
  extensions: ['.js', '.vue', '.json']
}

以下是关于resolve的文档。扩展

 类似资料:
  • 我正在玩grpc 有人成功使用进行生产吗?我们需要包括特使在内的所有依赖项吗?

  • 我看到的所有解决方案都需要使用。但是,我想在Eclipse之外的单个文件上使用CDT解析器。那有什么办法吗?

  • 问题内容: 我在整个应用程序中都使用spring 。现在,我也想为一个没有的创建一个。那有可能吗? 问题答案: JPA要求每个实体都有一个ID。因此,不可以,没有ID的实体是不允许的。 每个JPA实体都必须有一个主键。 从JPA规范 您可能想从这里阅读更多有关JPA如何处理数据库端没有ID的情况的信息(请参阅“无主键”)。

  • 我们有一个应用程序,将部署在具有不同IP的服务器上。JNLP是在构建时生成的。因此,我们定义了没有代码库的JNLP: 然而,当第二次启动这个应用程序时(从第一次启动时创建的桌面图标),代码库被设置为本地文件系统,这是绝对无用的。我希望Java Webstart在第一次启动应用程序时使用实际的源地址设置代码库。这似乎不是真的。 我如何准备一个通用的JNLP,它可以在不同的服务器上使用而无需修改?

  • 问题内容: 我需要使用(在AngularJS中)列出数组中的所有元素。 复杂的是,数组的每个元素都将转换为表的一,两或三行。 我不能创建有效的html(如果用于元素上),因为和之间不允许使用任何类型的重复元素。 例如,如果在上使用ng-repeat ,我将得到: 无效的html。 但是我需要生成的是: 其中第一行由第一个数组元素生成,接下来的三行由第二个数组生成,第五行和第六个由最后一个数组元素生

  • 本文向大家介绍如何在没有ON条件的情况下使用MySQL JOIN?,包括了如何在没有ON条件的情况下使用MySQL JOIN?的使用技巧和注意事项,需要的朋友参考一下 我们可以不加条件地使用“交叉连接”。交叉联接以笛卡尔积形式给出结果。例如,如果一个表中有3条记录,而另一个表中有2条记录,则第一个记录将与所有第二个表记录匹配。然后,将重复相同的过程以进行第二次记录,依此类推。 交叉连接的例子 创建