簡體   English   中英

npm run watch 不會在特定更改時重新加載

[英]npm run watch does not reload on specific changes

一旦我改變了一些東西,我想使用npm run watch來重建我的資產。

這適用於幾乎所有文件,但不適用於我添加到pages目錄的文件。 如果我在pages -dir 更改后再次運行npm run watch ,則正在處理更改。

這是我的樹:

.
├── App.vue
├── components
│   └── Cards
│       └── Video.vue
├── entry-point.js
├── layouts
│   └── Layout1.vue
├── main.js
├── pages
│   └── Home
│       └── View.vue
├── router
│   ├── errors.js
│   ├── home.js
│   └── index.js
└── stores

這是App.vue

<template>
    <router-view/>
</template>

<script>
    export default {
        name: 'app',
    }
</script>

這是main.js

import Vue from 'vue'
import App from './App'
import Routes from '@/js/router/index'

const main = new Vue({
    el: '#app',
    router: Routes,
    render: h => h(App)
});

export default main;

這是router/index.js

import Vue from 'vue'
import Router from 'vue-router'

import homeRoutes from './home'

Vue.use (Router);

const ROUTES = [
    // Default route
    {path: '', redirect: '/home'}
]
.concat (homeRoutes);

const router = new Router ({
    base: '/',
    mode: 'history',
    routes: ROUTES
});

export default router

這是router/home.js

import Layout1 from '@/js/layouts/Layout1'

export default [{
    path: '/home',
    component: Layout1,
    children: [{
        path: '/',
        component: () => import( /* webpackChunkName: "home-view" */ '@/js/Pages/Home/View'),
    }]
}]

現在我們得到了webpack.mix.js

const {EnvironmentPlugin} = require ('webpack');
const mix = require ('laravel-mix');
const glob = require ('glob');
const path = require ('path');
const {CleanWebpackPlugin} = require ('clean-webpack-plugin');
const ChunkRenamePlugin = require ('webpack-chunk-rename-plugin');

require ('laravel-mix-tailwind');
require ('laravel-mix-purgecss');


mix.webpackConfig ({
    output: {
        chunkFilename: 'js/chunks/[name].[chunkhash].js'
    },
    plugins: [
        new CleanWebpackPlugin ({
            cleanOnceBeforeBuildPatterns: ['chunks/**/*']
        }),
        new EnvironmentPlugin ({
            BASE_URL: '/'
        }),
        new ChunkRenamePlugin ({
            initialChunksWithEntry: true,
            '/js/app': 'js/entry-point.js',
            '/js/vendor': 'js/vendor.js',
        }),
    ],
    module: {
        rules: [
            {
                test: /node_modules(?:\/|\\).+\.js$/,
                loader: 'babel-loader',
                options: {
                    presets: [['@babel/preset-env', {targets: 'last 2 versions, ie >= 10'}]],
                    plugins: ['@babel/plugin-transform-destructuring', '@babel/plugin-proposal-object-rest-spread', '@babel/plugin-transform-template-literals'],
                    babelrc: false
                }
            },
        ]
    },
    resolve: {
        alias: {
            '@': path.join (__dirname, 'resources'),
            'node_modules': path.join (__dirname, 'node_modules')
        }
    },
});

mix.js ('resources/js/entry-point.js', 'public/js')
.postCss ('resources/css/app.css', 'public/css')
.tailwind ('./tailwind.config.js');


if (mix.inProduction ()) {
    mix
    .version ()
    .purgeCss ();
}

我認為這是因為我的webpack.mix.js缺少配置,但我無法弄清楚如何解決這個問題。

解決方案很簡單: Pages目錄在文件結構中是小寫的,但在我的路由器定義中是大寫的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM