0

使用以下webpack.mix.js文件

const mix = require("laravel-mix");

// Laravel Mix plugins for additional capabilities
require("laravel-mix-purgecss");
require("laravel-mix-criticalcss");

// CSS Plugins
const tailwindcss  = require("tailwindcss");
const autoprefixer = require("autoprefixer");
const presetenv    = require("postcss-preset-env");

mix.setPublicPath('../public_html/assets/')
  .sass(pkg.paths.src.scss + "master.scss", "css/master.min.css")
  .options({
    processCssUrls: false,
    postCss: [ tailwindcss('./tailwind.config.js') ],
  })
  .js(pkg.paths.src.js + "site.js", "js/site.min.js")
  .sourceMaps()
  .browserSync({
    proxy: "domain.local",
    notify: {
      styles: {
        top: 'auto',
        bottom: '0'
      }
    },
    files: [
      "src/scss/*.scss",
      "templates/*.twig",
      "templates/**/*.twig",
      "templates/*.js",
      "templates/**/*.js"
    ]
  });

// mix.disableSuccessNotifications();

if (mix.inProduction()) {
  mix.webpackConfig({
    plugins: [],
  })
  .criticalCss({
    enabled: true,
    paths: {
      base: 'https://domain.local',
      templates: './templates/_inline_css/',
      suffix: '.min'
    },
    urls: [
      { url: '/', template: 'index' },
    ],
    options: {
      minify: true,
      timeout: 1200000,
    },
  })
  .version();
}

当我跑步时,npm run production我得到:

发出 HtmlCriticalWebpackPlugin(node:58149) UnhandledPromiseRejectionWarning: TypeError [ERR_INVALID_ARG_TYPE] 后 98%:“数据”参数必须是字符串类型或 Buffer、TypedArray 或 DataView 的实例。收到未定义。

令人困惑的是,在某一时刻这工作正常。我的 URL 列表比我上面显示的要长。我第一次尝试它时,它成功输出了 CSS 文件,但我遇到了超时问题,所以开始一次做几个。

在出现上述错误之前,我能够成功运行它两三次,现在它不会再编译了。我什至回去尝试了我之前尝试过的相同捆绑包,但第二次就不行了。

我也尝试过使用 Gulp 进行类似的设置,但得到了同样的错误。

有没有其他人得到过这个?你是怎么解决的?

4

0 回答 0