找不到module“sass”

IT技术 reactjs docker sass
2021-03-29 20:09:19

我编写了一个 React 应用程序并尝试对其进行 dockerized。在我这样做之后,它不能正确编译,它没有找到“sass”module,这是我的错误:

Failed to compile.

./src/index.scss (./node_modules/css-loader/dist/cjs.js??ref--5-oneOf-6- 
1!./node_modules/postcss-loader/src??postcss!./node_modules/resolve-url-loader??ref--5- 
oneOf-6-3!./node_modules/sass-loader/dist/cjs.js??ref--5-oneOf-6-4!./src/index.scss)
Cannot find module 'sass'
Require stack:
- /app/node_modules/sass-loader/dist/utils.js
- /app/node_modules/sass-loader/dist/index.js
- /app/node_modules/sass-loader/dist/cjs.js
- /app/node_modules/loader-runner/lib/loadLoader.js
- /app/node_modules/loader-runner/lib/LoaderRunner.js
- /app/node_modules/webpack/lib/NormalModule.js
- /app/node_modules/webpack/lib/NormalModuleFactory.js
- /app/node_modules/webpack/lib/Compiler.js
- /app/node_modules/webpack/lib/webpack.js
- /app/node_modules/react-scripts/scripts/start.js

这是我的 dockerfile:

From node:14.16.1-alpine

WORKDIR /app

ENV PATH /app/node_modules/.bin:$PATH

COPY package.json ./
COPY package-lock.json ./
RUN npm install --silent
RUN npm install react-scripts@4.0.3 -g --silent

COPY . ./

CMD ["npm", "start"]

而且我没有 docker-compose。

任何解决方案?

我将此行添加到我的 docker 文件中,但它不起作用并且出现相同的错误:

RUN npm install -g sass
5个回答

要注意!node-sass现已弃用!

警告:不推荐使用 LibSass 和 Node Sass。虽然他们将无限期地继续接收维护版本,但没有计划添加额外的功能或与任何新的 CSS 或 Sass 功能的兼容性。仍然使用它的项目应该转移到Dart Sass 上

在此处输入图片说明

相反,您可以看到在Dart sass项目中遵循了 Sass

react-scripts已经朝着那个方向发展了!

在此处输入图片说明

现在使用的包是sassnpm i -g sass或者npm i sass --save-dev

如果你去 npmsass 页面

在此处输入图片说明

这个包是一个分布飞dart萨斯,编译为纯JavaScript与没有本机代码或外部的依赖关系。它提供了一个命令行 sass 可执行文件和一个 Node.js API。

您可以使用npm install -g sass 它将提供对 sass 可执行文件的访问权限来全局安装 Sass 您还可以使用 将其添加到您的项目中npm install --save-dev sass这提供了可执行文件和库

应该做什么

安装 sass

全球范围内

npm i -g sass

或者

本地

npm i sass --save-dev

我个人更喜欢始终使用本地安装!这样npm install会自动添加它!有时也需要维护每个项目的版本!

在此处输入图片说明

在此处输入图片说明

应用程序安装后编译运行!

旧版本的react脚本

如果您在需要 node-sass 的旧版本上运行!

然后就可以更新到最新版本了!而在那之前!您可能想删除node_modulespackage-lock.json

npm i react-scripts --save

之后npm install再次安装项目依赖项

你可以去安装sass步骤

npm cache clear --force
npm install sass
虽然此代码片段可能是解决方案,但包括解释确实有助于提高帖子的质量。请记住,您是在为将来的读者回答问题,而那些人可能不知道您提出代码建议的原因。
2021-06-09 20:09:19

我解决!您只需要将此行添加到您的“dockerfile”中,这样​​当您构建 docker 镜像时,它应该会自动安装 sass:

RUN npm install -g sass

并在您的“package.json”中将其添加到“dependencies”中,它告诉我们在这种情况下对我们拥有的内容进行编程,我们的意思是我们拥有特定版本的“sass”:

"sass": "version number(example:^5.0.0)"

并将其添加到“脚本”部分中,该部分告诉编程如何在这种情况下工作我认为它告诉“scss”文件whatch该文件并像“css”一样识别和打开它:

"scss": "sass --whatch scss -o css"

尝试在您的终端中安装此

npm install --save-dev node-sass

并通过键入重新启动本地主机

npm start

在您的提示下按 Enter

完成这些步骤后,请确保检查您的依赖项

包.json

并找到

"devDependencies": { "node-sass": "^yourversion" }

要清楚:

1) 尝试使用此命令卸载它

npm uninstall node-sass

然后2)尝试安装sass

npm install --save-dev sass

当我在使用 create react app 在项目上安装 sass 时遇到问题时,这对我有用