Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用webpack样式加载器绑定的包与SSR不兼容,因此无法导入Next.js_Webpack_Sass_Webpack Style Loader_Next.js_Server Side Rendering - Fatal编程技术网

使用webpack样式加载器绑定的包与SSR不兼容,因此无法导入Next.js

使用webpack样式加载器绑定的包与SSR不兼容,因此无法导入Next.js,webpack,sass,webpack-style-loader,next.js,server-side-rendering,Webpack,Sass,Webpack Style Loader,Next.js,Server Side Rendering,所以我有一个monorepo设置,就像这样 apps/ app1 app2 app3 packages/ components/ component1 component2 其中应用程序都在运行next.js应用程序,组件包发布在npm私有注册表上,并通过webpack捆绑 我的问题是,我只能将组件包导入到componentDidMount中的下一个应用程序,即客户端。尝试导入服务器端的组件会导致“未定义窗口”错误,该错误源于样式加载器网页包加载器

所以我有一个monorepo设置,就像这样

apps/

  app1

  app2

  app3

packages/

  components/

    component1

    component2
其中应用程序都在运行next.js应用程序,组件包发布在npm私有注册表上,并通过webpack捆绑

我的问题是,我只能将组件包导入到componentDidMount中的下一个应用程序,即客户端。尝试导入服务器端的组件会导致“未定义窗口”错误,该错误源于样式加载器网页包加载器

因此,当我删除任何sass导入和样式加载器时,我可以成功导入包,但是很明显,我不能在组件中包含任何sass,这是一个问题


有人知道我如何将软件包与sass捆绑,然后成功地将其导入服务器端到下一个应用程序中吗?

我最终解决了这个问题

我不得不使用extract css chunks插件构建我的组件包,以保持css与js的分离,从而消除了对样式加载器的需要,并在节点模块中留下main.css(除了index.js)

然后,我可以毫无问题地导入服务器端的组件,只需将package_name/dist/中的main.css文件作为我的应用程序的static/style.css的一部分,以提供它们的样式