laravel-mix создает пустые (0 байт) файлы .css БЕЗ динамического импорта и .extract - PullRequest
0 голосов
/ 09 октября 2019

Я получаю пустые файлы .css без использования .extract и import () Когда я запускаю npm run dev

Мой webpack.mix.js:

let mix = require('laravel-mix');
mix.js('resources/assets/js/app.js', 'public/js').sourceMaps()
    .js('resources/assets/js/admin.js', 'public/js').sourceMaps()
    .sass('resources/assets/sass/app.scss', 'public/css')
    .sass('resources/assets/sass/admin.scss', 'public/css');

mix.copyDirectory('resources/assets/img', 'public/img');

Странно то, что, если я удаляю один из .js миксов, он работает. Например, это работает:

mix.js('resources/assets/js/app.js', 'public/js').sourceMaps()
    .sass('resources/assets/sass/app.scss', 'public/css')
    .sass('resources/assets/sass/admin.scss', 'public/css');

это также работает:

mix.js('resources/assets/js/admin.js', 'public/js').sourceMaps()
    .sass('resources/assets/sass/app.scss', 'public/css')
    .sass('resources/assets/sass/admin.scss', 'public/css');

Но мне нужно сгенерировать admin.js (или app.js) после этого. Что не очень удобно. Есть идеи, что я делаю не так?

Моя среда:

  • Laravel Mix Версия: 5.0.0
  • Версия узла: 11.0.0
  • NPM Версия: 6.10.3
  • ОС: macOS High Siera / Ubuntu 18.04 LTS

Я уверен, что у меня нет динамического импорта, потому что я обновляю сlaravel-mix v.3. Но также я проверил свой код. И если у меня динамический импорт, ни один из моих примеров не будет работать.

РЕДАКТИРОВАТЬ: Я обнаружил, что проблема в моем файле admin.js, который импортирует:

import router from './router'

и в / router/index.js есть другой импорт:

import routes from './routes.js'

, и проблема, похоже, заключается в файле rout.js, который выглядит так:

const routes = [
    {
        path: '/',
        component: resolve => require(['../views/admin/dashboard/dashboard.vue'], resolve),
        meta: {
            title: "Dashboard",
        }
    },
];
export default routes

Но я все еще не могуобъясните, где здесь динамический импорт?!?!? Или как это работает:

mix.js('resources/assets/js/admin.js', 'public/js').sourceMaps()
    .sass('resources/assets/sass/admin.scss', 'public/css');

1 Ответ

0 голосов
/ 10 октября 2019

Я изменил это:

component: resolve => require(['../views/admin/dashboard/dashboard.vue'], resolve),

на это:

component: require('../views/admin/dashboard/dashboard.vue').default,

и теперь это работает. Эта статья была очень полезна: Что такое горячая замена модулей в Webpack?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...