我的 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” - 它将 block 分开
- 对于“节点” - 它只提供 1 个文件
但是,我收到“节点”错误,这很公平 - 我们在节点目标中没有窗口:
return window && document && document.all && !window.atob
ReferenceError: window is not defined
查看编译的文件,这就是它崩溃的地方,这让我认为它与样式加载器相关。
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;
});
我该怎么做才能让“node”不使用样式加载器?如何在 laravel-mix 中更改此设置?
...但要根据目标更改 Laravel-mix 中的样式加载器?
最佳答案
在节点目标中不包括 mix.sass('resources/sass/app.scss', 'public/css')
有效:O
关于javascript - Laravel mix - 'window is not defined',目标 : node 中带有样式加载器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58296413/