首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue-Loader:为所有必需的.vue组件分配基-url

Vue-Loader:为所有必需的.vue组件分配基-url
EN

Stack Overflow用户
提问于 2017-10-26 14:29:32
回答 1查看 820关注 0票数 0

我正在使用vue-加载程序作为应用程序。我希望尽可能地解耦我的组件,并且在这样的情况下,我想拥有这样的组件:

Test.vue

代码语言:javascript
复制
<template>
    <div>
  Testing My Vue
  <child></child>
</div>

代码语言:javascript
复制
<script>
export default {
  data () {
    return {}
  },
  beforeCreate(){
    var child  = require("./CompanyName/Components/child.vue");
    Vue.component("child",child);
  }
}
</script>

注意下面的一行

代码语言:javascript
复制
var child  = require("./CompanyName/Components/child.vue");

Child.vue

代码语言:javascript
复制
<template>
 <div>This is my Child component</div>
</template>

<script>
  export default {

    data () {
      return {};
    }
  }
</script>

在我的应用程序上运行"webpack“会导致以下错误:

未找到./~/babel-loader/lib!./~/vue-loader/lib/selector.js?type=script&index=0!./src/CompanyName.Module/Views/Test/test.vue模块中的错误:错误:无法解析“文件”或“目录”C:\user1\user1 1\ 2015\Projects\CompanyName.Web.ClientSide\CompanyName.Module.Website\Scripts\src\CompanyName.Module\Views\TestCompanyName/Components/child.vue \Visual中的C:\user1\user1 1\2015\Projects\CompanyName.Web.ClientSide\CompanyName.Module.Website\Scripts\src\CompanyName.Module\Views\TestCompanyName/Components/child.vue\Visual工作室2015\Projects\CompanyName.Web.ClientSide\CompanyName.Module.Website\Scripts\src\CompanyName.Module\Views\Test @ ./~/babel-loader/lib!./~/vue-loader/lib/selector.js?type=script&index=0!./src/CompanyName.Module/Views/Test/test.vue 23:16-70

似乎vue-加载器没有将'./‘作为我的应用程序的基本路径(即'src')。我想让我的所有引用从同一个文件夹开始,以便在启动时定义它们,或者添加别名。是否有一种方法来配置webpack.config,以便当它遇到使用require() ?注入的依赖时,识别'./‘意味着'/src’

在过去的日子里,当使用require.js时会处理这个问题。

代码语言:javascript
复制
//the old days
requirejs.config({
 baseUrl:'./src'
})

My Webpack.config

代码语言:javascript
复制
var path = require('path');

module.exports = {

    entry: "./src/main.js",
    output: {
        path: '../Dist',
        publicPath: '../Dist/',
        filename: 'build.js'
    },
    resolve: {
       alias: {
            'vue': 'vue/dist/vue.js',
       }

    },
    module: {
        rules: [
           {
                test: /\.vue$/,
                loader: 'vue-loader',           
           }
        ],
        loaders: [
           {
                test: /\.js$/,
                loader: 'babel',
                exclude: /node_modules/,
            },
            {
                test: /\.vue$/,
                loader: 'vue',
            }
        ]
     },
    devtool: "#source-map",
    vue: {
       loaders: {
           js: 'babel'
       }
   } 

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-26 14:33:53

您应该在@文件中使用webpack.conf.js别名,例如:

代码语言:javascript
复制
alias: {
      'vue$': 'vue/dist/vue.js',
      '@': resolve('src')
    }

然后,在include / require中,可以使用@直接指向vue/src文件夹:

代码语言:javascript
复制
include '@/components/Hello'  //This will point to ./src/components/Hello.vue

P.D = running webpack的意思是什么?如果您已经安装了带有vue-cli的vue,则应该使用npm run devnpm run prod而不是webpack

希望能帮上忙!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46957030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档