2017-07-24 182 views
0

对于一个项目,我使用了一个库,为了在不同的应用程序之间共享Vue组件。解决npm模块依赖关系

因此,我作为一个npm模块导入我的组件库,并将其添加到应用程序package.json,并且工作正常。

问题是,当我尝试在组件库中的单个组件中导入某些内容时,应用程序无法解决该组件的依赖关系。在组件库

如部分:在应用的package.json

<template> 
    <!-- my html --> 
    </template> 
    </script> 
    // my script 
    </script> 

    <style scoped> 
    // here I import the basic style for the component: 
    @import "../../assets/base"; 

我:

"components": "git+ssh://[email protected]:xxxxx/xxxxx/my-library.git#development", 

,然后我通常使用的成分在我的项目是这样的:

import MyComponent from "./components/MyComponent.vue"; 

组件库工作正常,但是当我在应用程序中导入组件时, e下面的错误从webpack:

This dependency was not found: 

* -!../../../../css-loader/index.js?sourceMap!../../assets/base in ./~/css-loader?sourceMap!./~/vue-loader/lib/style-compiler?{"vue":true,"id":"data-v-28803148","scoped":true,"hasInlineConfig":false}!./~/vue-loader/lib/selector.js?type=styles&index=0!./~/components/src/core/MyComponent.vue 
To install it, you can run: npm install --save -!../../../../css-loader/index.js?sourceMap!../../assets/base 

当然,如果我用@import替换实际的CSS需要一切工作正常。我怎样才能使这个配置有效?

+0

您已经安装并配置CSS-装载机?这就是错误所指的。 –

+0

为什么使用组件的相对路径?它应该是'node_modules'中的一个,并且导入将是'components/MyComponent.vue'。此外,CSS导入是'../../ assets/base',这是两个目录,如果它在'MyComponent.vue'中,这意味着它正在模块之外寻找它,并且这样做效果不好。那是故意的吗? –

回答

0

我的坏,错误是根本就没有在组件的样式声明加入LANG = “SCSS”:

<style scoped> 

这应该是:

<style scoped lang="scss">