要导入 Sass 文件,首先需要安装 node-sass

Posted

技术标签:

【中文标题】要导入 Sass 文件,首先需要安装 node-sass【英文标题】:To import Sass files, you first need to install node-sass 【发布时间】:2020-03-05 06:21:06 【问题描述】:

运行 create-react-app,我在我的 create-react-app 应用程序中收到错误:

。在工作区中运行 npm install node-sassyarn add node-sass

我确实安装了 node-sass。

package.json:

  "devDependencies": 
    "node-sass": "^4.13.0"
  

项目节点模块文件夹:

我已经卸载、重新安装、更新、清理缓存等。我该如何修复?

【问题讨论】:

它应该在依赖项上,而不是在我认为的 devDependencies 上 @ocheriaf - 我有其他项目以这种方式设置并且可以正常工作 运行构建时是否从 package.json 调用 node-sass?例如:"build": "node-sass --other build steps" 我正在分叉 create-react-app,并且正在运行 npx create-react-app --scripts-version file:../my-local/react-scripts。然后我会在创建的应用程序中收到此错误。然后我将反应脚本发布到 npm 并以这种方式运行,不再出现此错误。不明白 这里有同样的问题。您是否有机会使用 Yarn 工作区? 【参考方案1】:

我遇到了同样的问题,设置 SASS_PATH 环境变量为我解决了这个问题。

例如,如果您使用docker-compose.yml,则添加:

environment:
  - SASS_PATH=node_modules:src

也许其他人可以解释为什么需要这样做。

【讨论】:

【参考方案2】:

下面是我的错误,

./src/modules/TestListing/components/SurveyCard/index.scss 

/usr/local/lib/node_modules/react-scripts/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-5-1!

/usr/local/lib/node_modules/react-scripts/node_modules/postcss-loader/src??postcss!

/usr/local/lib/node_modules/react-scripts/node_modules/resolve-url-loader??ref--6-oneOf-5-3!

/usr/local/lib/node_modules/react-scripts/node_modules/sass-loader/dist/cjs.js??ref--6-oneOf-5-4!

./src/modules/TestListing/components/SurveyCard/index.scss)


To import Sass files, you first need to install node-sass.
Run `npm install node-sass` or `yarn add node-sass` inside your workspace.

即使我已在全局范围内安装了node-sass,但还是发生了错误,这很奇怪。

我认为react-scripts 在它的环境中无法识别node-sass,因此我在全局安装的react-scripts 包中添加了node-sass 依赖项

cd /usr/local/bin/node_modules/react-scripts
sudo npm install --unsafe-perm node-sass

在上面的命令中,我实际上是在将 node-sass 安装到一个 react-script 包中,它是一个库,它可以解决我的问题,

注意命令,因为我是dong--unsafe-perm,请先阅读


【讨论】:

【参考方案3】:

实际上对我有用的是创建一个新文件夹,从那里创建一个反应应用程序并将所有代码传输到该新文件夹。不知道为什么首先会出现问题。

【讨论】:

【参考方案4】:

一般情况下应该安装node-sass:

npm install node-sass --save
# or
yarn add node-sass

如何导入

@import 'styles/_colors.scss'; // assuming a styles directory under src/
@import '~nprogress/nprogress'; // importing a css file from the nprogress node module

Sass 路径变量

要使用相对于您指定的路径的导入,并且从node_modules 导入而不添加~ 前缀,您可以在项目根目录中添加.env file 和变量SASS_PATH=node_modules:src。要指定更多目录,您可以将它们添加到SASS_PATH,并用: 分隔,例如path1:path2:path3

【讨论】:

【参考方案5】:

对我有用的是我卸载了全局 node-sass 并将其安装在我当前的项目目录中

npm uninstall -g node-sass

npm install node-sass

确保在安装完成之前停止 npm start,如果可能,在安装完成后重新启动系统

【讨论】:

make sure to stop npm start until after installation - 我唯一要做的事。【参考方案6】:

在我的情况下,即使 node-sass 已经安装在我的项目目录中,我也遇到了同样的问题。

要导入 Sass 文件,首先需要安装 node-sass。运行 npm 在你的工作空间中安装 node-sass 或 yarn add node-sass。

我发现,我的项目在全局安装的 react 脚本上运行,并且在我的本地项目目录中还有另一个版本。获取“node-sass”的基本路径时发生冲突。

我卸载了本地的 react-scripts 并在本地项目目录中重新安装了它。运行,

npm uninstall react-scripts 然后 npm install react-scripts

这解决了我的问题!

【讨论】:

【参考方案7】:

node-sass 已被弃用。请安装 sass 或 dart sass 来解决您的问题。

【讨论】:

create-react-app 是否需要更新他们的文档create-react-app.dev/docs/adding-a-sass-stylesheet

以上是关于要导入 Sass 文件,首先需要安装 node-sass的主要内容,如果未能解决你的问题,请参考以下文章

Ionic 2之node-sass问题解决办法

gulp-sass:错误 - 找不到要导入的文件或不可读

错误:找不到要导入的文件或无法读取:node_modules/bootstrap-sass/assets/stylesheets/bootstrap

找不到或无法读取要导入的文件:指南针

Sass ,Scss 简单教程

Rails 3 应用程序中的 Sass 导入错误 - “找不到或无法读取要导入的文件:指南针”