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

时间:2018-12-28 12:38:47

标签: npm jekyll node-modules 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中导入引导程序,但它不仅仅只是引导程序,而我无法导入的node_modules文件夹中的任何内容也不例外。

我尝试将导入代码从以下位置更改:

@import "bootstrap/scss/bootstrap";

进入以下选项:

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

但是那没用

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

sass:
    load_paths:
      - _sass
      - node_modules

感谢您的光临,并感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

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

您的问题的一种解释可能是您的github存储库中不存在引导程序,并且您没有在 package.json yarn.lock 版本文件。

请确保:

  1. 安装和引用引导程序作为依赖项。

有纱

yarn add bootstrap

或使用npm

npm install bootstrap -P
  1. 将您的 package.json 版本化,如果使用yarn,则将您的 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