我编写了一个React应用并尝试将其dockerize。执行此操作后,它无法正确编译,找不到模块sass,错误如下:
sass
编译失败。 ./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) 找不到模块‘sass’ 需要堆栈: /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
编译失败。
./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) 找不到模块‘sass’ 需要堆栈:
这是我的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现在已经被弃用了!
node-sass
警告:LibSass 和 Node Sass 已被弃用。虽然它们将继续无限期地接收维护版本,但没有计划添加其他功能或与任何新的 CSS 或 Sass 功能兼容。仍在使用它的项目应该转移到Dart Sass。
相反,您可以看到Dart sass项目遵循了 Sass !
react-scripts已经朝那个方向发展了!
现在使用的包是sass!npm i -g sass或npm i sass --save-dev
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。这提供了可执行文件和库。
此软件包是Dart Sass的一个发行版,已编译为纯 JavaScript,无原生代码或外部依赖项。它提供了一个命令行 sass 可执行文件和一个 Node.js API。
您可以使用 全局安装 Sass npm install -g sass ,这将提供对 sass 可执行文件的访问。您还可以使用 将其添加到您的项目中npm install --save-dev sass。这提供了可执行文件和库。
npm install -g sass
npm install --save-dev sass
安装sass
全球
或者
本地
我个人更喜欢始终使用本地安装!这样npm install它会自动添加!有时也需要维护每个项目的版本!
npm install
和
应用程序安装后编译并运行!
如果您正在运行需要 node-sass 的旧版本!
然后你就可以更新到最新版本了!在此之前!你可能想删除node_modules和package-lock.json。
node_modules
package-lock.json
npm i react-scripts --save
之后npm install再次安装项目依赖项
您可以继续安装sass步骤