我可以在本地提供我的 jekyll 网站,但无法在 netlify 上运行

I can serve my jekyll site locally but can't get it working on netlify

我可以使用 jekyll serve 命令在本地 运行 我的 jekyll 站点,它工作得很好,但是当我尝试将它部署到 netlify 时,出现以下错误:

Conversion error: Jekyll::Converters::Scss encountered an error while
converting 'assets/main.scss':
File to import not found or unreadable: bootstrap/scss/bootstrap. Load
paths: /opt/build/repo/_sass /opt/build/repo/node_modules
/opt/build/repo/_sass on line 6

我试图注释掉从我的资产文件夹中的 main.scss 中导入 bootstrap,但它并不孤立于 bootstrap,[=30= 中的任何内容] 无法导入的文件夹。

我尝试更改导入代码:

@import "bootstrap/scss/bootstrap";

到以下选项:

@import "/node_modules/bootstrap/scss/bootstrap";
@import "../node_modules/bootstrap/scss/bootstrap";

但这并没有奏效

在我的 _config.yml 中,我配置了以下内容:

sass:
    load_paths:
      - _sass
      - node_modules

感谢您的浏览并感谢您的帮助!

观察您的配置,我可以说 @import "bootstrap/scss/bootstrap"; 是正确的包含路径。

对您的问题的一种解释可能是 bootstrap 不存在于您的 github 存储库中,并且您没有在 中引用 bootstrappackage.jsonyarn.lock 版本文件。

一定要:

  1. 安装并引用 bootstrap 作为依赖项。

有纱线

yarn add bootstrap

或使用 npm

npm install bootstrap -P
  1. 版本化你的package.json,如果你使用纱线,你的yarn.lock文件。

Netlify 将在生成您的 Jekyll 站点之前自动上传您的依赖项。

例如:我正在使用 Yarn 创建一个 yarl.lock 文件,我正在对它进行版本控制,就像我的 package.json.

在我的 Netlify 部署输出中我可以看到:

6:01:58 PM: Installing NPM modules using Yarn version 1.3.2
6:01:59 PM: yarn install v1.3.2
6:01:59 PM: [1/4] Resolving packages...
6:01:59 PM: [2/4] Fetching packages...
6:02:02 PM: [3/4] Linking dependencies...
6:02:03 PM: [4/4] Building fresh packages...
6:02:04 PM: Done in 4.39s.
6:02:04 PM: NPM modules installed using Yarn