Laravel 5:使用 Vue 安装自定义组件时出现错误“不在 npm 注册表中”。

Posted

技术标签:

【中文标题】Laravel 5:使用 Vue 安装自定义组件时出现错误“不在 npm 注册表中”。【英文标题】:Laravel 5 : Install custom component using Vue having error " is not in the npm registry." 【发布时间】:2020-02-13 16:06:08 【问题描述】:

我们使用的技术是 Laravel,现在正在尝试使用 Vue js。在我的 app.js 中

App.js 文件

Vue.component('main-chart-of-accounts', require('chart_of_account.vue').default);

也在同一路径中。我有那个文件 chart_of_account.vue。在这个文件中,这是我们的模板

chart_of_account.vue 文件

<template>
    <div class="col-xs-12 col-sm-12 col-md-12 col-lg-12 col-xl-12">
        <article-list></article-list>
        <!-- end card-->          
    </div>
</template>
<script>
    import ChartOfAccountList from '../components/configurations/chart-of-accounts/ChartOfAccountList.vue';
    export default   
        data: function () 
            return 
                detail: ''
            
        ,
        mounted()
        ,
        methods: 
        ,
        watch: 
        ,
        components: 
            ChartOfAccountList
        
    
</script>

当我尝试通过执行此命令安装 ChartOfAccount.vue 时遇到一些错误

npm install --save ChartOfAccount.vue

1) 它说

'ChartOfAccount.vue@latest' 不在 npm 注册表中。 npm 错误! 404 您的包名无效,因为 npm 错误! 404 1.名称不能再包含大写字母

所以我将文件名更改为 chart_of_account.vue 然后我尝试再次安装,但这次我的错误是

'chart_of_account.vue@latest' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)

问题:如何在 app.js 中导入我的 chart_of_account.vue?

【问题讨论】:

【参考方案1】:

使用require(),您可以按名称导入NPM 包,例如require('express')

如果要导入本地文件,则必须使用相对路径,“当前路径”为./

所以你的代码应该是:

Vue.component('main-chart-of-accounts', require('./chart_of_account.vue').default);

这样你的打包器就会知道你需要一个文件,而不是一个名为“chart_of_account.vue”的包

【讨论】:

其实我已经这样做了,但我遇到了同样的错误。 'chart_of_account.vue@latest' 不在 npm 注册表中。 npm 错误! 404 你应该让作者发布它(或自己使用名称!)

以上是关于Laravel 5:使用 Vue 安装自定义组件时出现错误“不在 npm 注册表中”。的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.6.7 和 Vue.js 中的自定义错误消息,尤其是组件

Laravel Nova 中的自定义 Vue 组件

Laravel Nova自定义工具创建:vue组件不刷新

VueJS注册组件错误未知自定义元素

如何在 Laravel 5.3 中使用带有 Vue.js 2.0 的组件中使用外部 html 模板

Laravel 5.3 个人访问令牌 500