reactjs - 找不到模块“sass”
问题描述
我编写了一个反应应用程序并尝试将其 docker 化。在我这样做之后,它不能正确编译,它没有找到“sass”模块,这是我的错误:
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
解决方案
要注意!node-sass
现在已弃用!
警告:不推荐使用 LibSass 和 Node Sass。虽然他们将继续无限期地接收维护版本,但没有计划添加额外的功能或与任何新的 CSS 或 Sass 功能兼容。仍在使用它的项目应该转移到Dart Sass上。
相反,您可以看到在Dart sass项目中遵循了 Sass!
react-scripts已经朝着那个方向发展了!
现在使用的包是sass!npm i -g sass
或者npm i sass --save-dev
如果你去 npmsass
页面
这个包是 Dart Sass 的一个发行版,编译成纯 JavaScript,没有本地代码或外部依赖。它提供了一个命令行 sass 可执行文件和一个 Node.js API。
您可以全局安装 Sass,使用
npm install -g sass
它将提供对 sass 可执行文件的访问。您也可以使用npm install --save-dev sass
. 这提供了可执行文件和库。
应该做什么
安装sass
全球范围内
npm i -g sass
或者
本地
npm i sass --save-dev
我个人更喜欢总是使用本地安装!这样npm install
就自动添加了!有时也要维护每个项目的版本!
和
应用程序安装后编译运行!
旧版本的反应脚本
如果您在需要 node-sass 的旧版本上运行!
然后就可以更新到最新版本了!在那之前!您可能想删除node_modules
和package-lock.json
。
npm i react-scripts --save
之后npm install
再次安装项目依赖项
你可以去安装sass
步骤
推荐阅读
- python - 如何按行将值从一列移动到另一列?
- xcode - Xcode Organizer Archiving 在 macOS Mojave 中使用了过多的 RAM
- javascript - 提交表单后显示图像预览我之前选择了哪个图像?
- three.js - 如何在三个 JS 中计算 FOV 的距离
- wso2 - 带有 Gmail 连接器的 WSO2 ForEach 中介
- .net-core - MassTransit 中的通用命令路由
- javascript - 如何在不和谐中进行机器人身份验证?
- angularjs - 控制器与 AngularJS 表单一样
- python-3.x - 不支持在 DynamicMap 中嵌套 DynamicMap
- java - 尝试使用 Spring Security 自定义登录失败