【问题标题】:Laravel mix - 'window is not defined' with style-loader in target: nodeLaravel mix - '窗口未定义'与目标中的样式加载器:节点
【发布时间】:2020-02-06 08:01:54
【问题描述】:

我的 laravel-mix 有 2 个不同的版本。目标节点和网络。以下是它们的外观:

if (process.env.npm_config_section === 'server') {
    mix.js('resources/js/app-server.js', 'public/js')
        .webpackConfig({
            target: 'node',
            plugins: [
                new webpack.optimize.LimitChunkCountPlugin({
                    maxChunks: 1,
                })
            ],
        })
        .mergeManifest()
        .version();
} else if (process.env.npm_config_section === 'client') {
    mix.js('resources/js/app-client.js', 'public/js')
        .webpackConfig({
            target: 'web',
            output: {
                chunkFilename: 'js/chunks/[name].js?id=[chunkhash]',
                publicPath: '/',
            },
        })
        .mergeManifest()
        .version();
}

mix.sass('resources/sass/app.scss', 'public/css')
  • 对于 'web' - 它分隔块
  • 对于“节点” - 它只提供 1 个文件

但是,我得到一个“节点”错误,这很公平 - 我们在节点目标中没有窗口:

返回窗口 && 文档 && document.all && !window.atob

ReferenceError: 未定义窗口

查看编译后的文件,这是崩溃的地方,这让我认为它与样式加载器相关。

var isOldIE = memoize(function () {
    // Test for IE <= 9 as proposed by Browserhacks
    // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805
    // Tests for existence of standard globals is to allow style-loader
    // to operate correctly into non-standard environments
    // @see https://github.com/webpack-contrib/style-loader/issues/177
    return window && document && document.all && !window.atob;
});

我该怎么做才能使“节点”不使用样式加载器?如何在 laravel-mix 中更改它?

...但是要根据目标更改 Laravel-mix 中的样式加载器?

【问题讨论】:

    标签: javascript laravel webpack laravel-mix webpack-style-loader


    【解决方案1】:

    在节点目标中不包括mix.sass('resources/sass/app.scss', 'public/css') 工作:O

    【讨论】:

      猜你喜欢
      • 2019-05-25
      • 1970-01-01
      • 2019-05-30
      • 2017-08-23
      • 2020-08-28
      • 1970-01-01
      • 2022-01-02
      • 1970-01-01
      • 2019-04-09
      相关资源
      最近更新 更多