Vue of Bookscript. Ошибка: модуль не найден: ошибка: не удается разрешить './components/mycomponent.vue'

Я использую vue машинописного текста, а также машинописный текст в Express. Все работало до тех пор, пока я не хочу использовать компонент одного файла в vue.js. Вот мой компонент,

<template>
  <div>This is a simple component. {{msg}}</div> 
</template>

<script lang='ts'>
export default {
  data() {
    return {
      msg: "you"
    }
  }
}
</script>

Мой веб-файл,

const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const HtmlWebpackPugPlugin = require('html-webpack-pug-plugin');
const Webpack = require('webpack');
const ExtractTextPlugin = require('extract-text-webpack-plugin');

module.exports = {
    entry: {
        bundle: [
            './node_modules/bootstrap/dist/js/bootstrap.js',
            './dist/web/views/common/client/ts/_main.js',
            './web/views/common/client/style/main.scss'
        ]
    },
    output: {
        path: path.resolve(__dirname, 'public'),
        filename: '[name].js',
        publicPath: '/'
    },
    module: {
        rules: [
            {
                test: /.vue$/,
                loader: 'vue-loader',
                options: {
                    loaders: {
                        ts: 'ts-loader'
                    },
                    esModule: true
                }
            },
            {
                test: /.scss$/,
                use: ExtractTextPlugin.extract({
                    fallback: 'style-loader',
                    use: [{
                        loader: 'css-loader',
                        options: {
                            minimize: false
                        }
                    }, {
                        loader: 'sass-loader'
                    }]
                })
            },
            {
                test: require.resolve('jquery'),
                loader: 'expose-loader?$!expose-loader?jQuery'
            }
        ]
    },
    resolve: {
        alias: {
            vue$: 'vue/dist/vue.esm.js'
        }
    },
    plugins: [
        new ExtractTextPlugin('styles.css'),
        new HtmlWebpackPlugin({
            template: './web/views/common/_layout.pug',
            filename: '../web/views/common/layout.pug',
            filetype: 'pug'
        }),
        new HtmlWebpackPugPlugin(),
        new Webpack.ProvidePlugin({
            jQuery: 'jquery',
            $: 'jquery',
            Popper: 'popper.js'
        })
    ]
};

Если я не использую один компонент файла, все работает, но когда я представляю файл .vue, он покажет эту ошибку,

ОШИБКА в ./dist/web/views/about/client/ts/_aboutController.js Модуль не найден: ошибка: невозможно разрешить './components/mycomponent.vue' в '/ Users / george / github / bochure / dist / web / views / about / client / ts '@ ./dist/web/views/about/client/ts/_aboutController.js 4: 24-63 @ ./dist/web/views/common/client/ts/_main .js @ multi ./node_modules/bootstrap/dist/js/bootstrap.js ./dist/web/views/common/client/ts/_main.js ./web/views/common/client/style/main.scss

Может кто-нибудь мне помочь? Вы также можете скачать мой источник в github и помочь мне. Большое спасибо.

git@github.com: geforcesong / bochure.git

vue.js,

1

Ответов: 2


0

Я предлагаю вам сначала проверить путь компонента . Если вы вставляете один компонент vue в другой, проверьте, оба ли находятся на одном уровне каталога .

Если они тогда, вы можете использовать «./component-name.vue», и вам будет хорошо идти.


0

Попробуйте изменить

'./components/mycomponent.vue'

'../components/mycomponent.vue'

Это может работать в некоторых случаях.

vue.js,
Похожие вопросы