webpack 在netlify中部署时未拾取CSS样式

ef1yzkbh  于 2023-11-19  发布在  Webpack
关注(0)|答案(3)|浏览(109)

我已经创建了一个React-app,并尝试第一次使用Netlify部署它(示例是here)。然而,当部署完成时,网站看起来与本地不同。例如,我的网格布局无法正常工作。
我可以看到这些样式的打包方式与本地不同。Netlify正在创建一些/static/css/*.chunk.css文件,其中确实包含我的样式。在本地部署时,这些样式只是作为<style type="text/css">添加到父文档的<head>标记中
我试过在Netlify中关闭资产优化。我也试过重命名我的CSS类,甚至直接将其包含在Netlify-react-app项目的index.js文件中。似乎没有什么区别。
我的package.json

{
  "name": "knowledge-repo",
  "version": "0.1.0",
  "private": true,
  "proxy": "http://localhost:3001/",
  "dependencies": {
    "@toast-ui/react-editor": "^1.0.0",
    "array-move": "^2.1.0",
    "mongoose": "^5.5.13",
    "react": "^16.8.6",
    "react-ace": "^6.5.0",
    "react-codemirror": "^1.0.0",
    "react-dom": "^16.8.6",
    "react-scripts": "2.1.8",
    "react-sortable-hoc": "^1.9.1",
    "semantic-ui": "^2.4.2",
    "semantic-ui-react": "^0.86.0"
  },
  "scripts": {
    "start": "run-p start:**",
    "start:app": "react-scripts start",
    "start:lambda": "netlify-lambda serve src/lambda",
    "build": "run-p build:**",
    "build:app": "react-scripts build",
    "build:lambda": "netlify-lambda build src/lambda",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": [
    ">0.2%",
    "not dead",
    "not ie <= 11",
    "not op_mini all"
  ],
  "devDependencies": {
    "dotenv": "^8.0.0",
    "http-proxy-middleware": "^0.19.1",
    "netlify-lambda": "^1.4.13",
    "npm-run-all": "^4.1.5"
  }
}

字符串
下面是使用*.css的组件

import React from 'react';
import KnowledgeSubjectBrowser from './KnowledgeSubjectBrowser';
import KnowledgeRepoHeader from './KnowledgeRepoHeader';
import KnowledgeRepoSidebar from './KnowledgeRepoSidebar';
import styles from './KnowledgeRepo.css'

class KnowledgeRepo extends React.Component {

    render(){
        return (
      <div className={styles.krcontainer}>
        <header>
          <KnowledgeRepoHeader />
        </header>
        <nav>
          <KnowledgeRepoSidebar />
        </nav>
        <main>
          <KnowledgeSubjectBrowser />
        </main>
      </div>
        )
    }
}

export default KnowledgeRepo;


css文件如下:

:local(.krcontainer) {
  display: grid;

  grid-template-areas:
    "header header header"
    "nav content side";

  grid-template-columns: 100px 1fr 200px;
  grid-template-rows: auto 1fr;
  grid-gap: 0px;

  height: 100vh;

}

header {
  grid-area: header;
  background: black;
}

nav {
  padding: 30px 5px 20px 5px;
  grid-area: nav;
  background: black;
}

main {
  grid-area: content;
}

bvjveswy

bvjveswy1#

我找到了问题所在,在我的css文件的最后有一个分号(错字)。Netlify将所有静态文件捆绑在一起,因此捆绑的css工件无法正确加载。

emeijp43

emeijp432#

我遇到了同样的问题。对我来说,这是因为我有一个空文件导入。
在我的main.css文件中,我有以下导入:

@import url("./reset.css");
@import url("./core-styles.css");
@import url("./buttons.css");

字符串
然而,我删除了reset.css样式表文件(同时将其保留在导入中),以支持不同的策略。所有内容仍然构建,但没有正确捆绑,并且Netlify在部署的站点上没有正确处理一些样式。
一旦我从我的main.css文件中删除它(因为没有实际的文件),一切都再次工作

vhmi4jdf

vhmi4jdf3#

我遇到了同样的问题。对我有效的是删除package.json中的PurgeCSS postbuild脚本

"scripts": {
    "postbuild": "purgecss --css build/static/css/*.css --content build/index.html build/static/js/*.js --output build/static/css"
 },

字符串

相关问题