【问题标题】:Package vue components that use class syntax封装使用类语法的 vue 组件
【发布时间】:2019-02-14 08:40:45
【问题描述】:

我很难将我们的组件打包为 npm 包,以便我们可以在其他项目中重用它们。 我感觉我在互联网上到处搜索都无济于事。我怀疑在类语法样式中使用我们的组件会使大多数(即使不是全部)示例对我来说都失败。 迄今为止最成功的最后一个是来自Vue documentation 然而,我得到一个错误:

[!] (buble plugin) SyntaxError: Unexpected character '@'

原因显然是带有@Component 的类语法立即使构建失败。有没有办法使用类语法来完成这项工作?

我的组件的脚本部分如下所示(css 和模板部分没有什么特别之处):

<script>
import { Vue, Component, Prop } from 'vue-property-decorator';

@Component
export default class Checkbox extends Vue {
  @Prop({default: false}) checked;

};
</script>

【问题讨论】:

    标签: vuejs2 vue-cli-3


    【解决方案1】:

    我认为问题在于同时安装 vue-loadervue-template-compiler

    我在引用 Vue-loader Vue Docs

    插件是必需的!它负责克隆任何其他规则 您已定义并将它们应用于相应的语言 .vue 文件中的块。例如,如果您有一个规则匹配 /\.js$/,它将应用于.vue文件中的&lt;script&gt;块。

    在你npm install他们之后,你需要像这样更改你的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()
      ]
    }
    

    【讨论】:

    • 如果我理解正确,Vue 内部确实使用了 Webpack。 vue inspect &gt; output.js 命令显示 VueLoaderPlugin 实际上已经包含在内。我猜那是因为我们使用的是 CLI?
    • 对不起,我在那个问题中没有看到任何对我有帮助的东西:-(
    猜你喜欢
    • 1970-01-01
    • 2019-10-22
    • 1970-01-01
    • 2014-03-12
    • 2021-02-25
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多