首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模块未找到:错误:无法解决“sass-loader”

模块未找到:错误:无法解决“sass-loader”
EN

Stack Overflow用户
提问于 2017-11-23 03:42:04
回答 9查看 83.1K关注 0票数 29

webpack新来的。试着让sass-加载器很好地发挥我的反应项目,遵循教程。配置似乎是正确的,但结果总是“无法解决‘sass-加载程序’”。

我怀疑这是一个明显的错误,但没有多少搜索或谷歌引导我找到它。任何帮助都很感激。

误差

代码语言:javascript
复制
ERROR in ./ui/index.js
Module not found: Error: Can't resolve 'sass-loader' in '/root/src'
 @ ./ui/index.js 19:0-33
 @ multi webpack-hot-middleware/client?reload=true babel-polyfill ./ui/index.js

我到目前为止所做的事情(关于先前存在的反应项目):

npm i --save-dev node-sass sass-loader

package.json,在devDependencies下

代码语言:javascript
复制
"node-sass": "^4.7.2",
"sass-loader": "^6.0.6",
"webpack": "~2.2.1",
"webpack-dev-middleware": "~1.12.0",
"webpack-hot-middleware": "~2.20.0",
"webpack-node-externals": "~1.6.0"

index.js

代码语言:javascript
复制
import React from 'react';
import ReactDOM from 'react-dom';
import { HashRouter } from 'react-router-dom';
import App from './src/App';

require('./src/styles/main.scss');

ReactDOM.render(<HashRouter><App /></HashRouter>, 
document.getElementById('root'));

webpack.config.react.js:

代码语言:javascript
复制
const path = require('path');
const webpack = require('webpack');

const ExtractTextPlugin = require('extract-text-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');

const sourcePath = path.join(__dirname, './ui');
const extractStyle = new ExtractTextPlugin('styles.css');

//======break to module rules=======

module: {
  rules: [
    {
      test: /\.jsx?$/,
      include: sourcePath,
      exclude: /node_modules/,
      loader: 'babel-loader',
      query: {
        presets: ['react'],
      },
    },
    {
      test: /\.scss$/,
      include: sourcePath,
      exclude: /node_modules/,
      use: extractStyle.extract('sass-loader?sourceMap'),
    },
    {
      test: /\.css$/,
      exclude: sourcePath,
      loader: extractStyle.extract('css-loader'),
    },
  ],
},

//======= break again for plugins =====

plugins: [
  extractStyle,
  new HtmlWebpackPlugin({
    template: 'ui/index.html',
    title: 'name',
  }),
  new webpack.HotModuleReplacementPlugin(),
  new webpack.NamedModulesPlugin(),
  new webpack.optimize.OccurrenceOrderPlugin(),
  new webpack.NoErrorsPlugin(),
  new webpack.DefinePlugin({
    'process.env.NODE_ENV': JSON.stringify('development'),
  }),
]

可能的混淆器:所有这些都在开发坞容器中运行。不过,它已经重建,npm安装已经再次运行。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2017-11-23 05:02:57

如上文所述-虚惊。在Docker映像缓存和npm之间,sass加载程序和节点sass模块被报告为已安装,而实际上尚未安装。通常的rm node_modules和重建没有缓存技巧,修复了它。

票数 12
EN

Stack Overflow用户

发布于 2020-06-17 05:29:58

转到项目并运行以下两个命令

代码语言:javascript
复制
npm install sass-loader -D

npm install node-sass -D
票数 39
EN

Stack Overflow用户

发布于 2022-01-10 09:59:37

此问题可能是缓存的结果。没有必要重新启动这个项目。

在终端上运行以下命令

代码语言:javascript
复制
rm -r node_modules
代码语言:javascript
复制
npm install
代码语言:javascript
复制
npm install -D sass-loader@^10 sass
票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47447199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档