par*_*ial 16 webpack sass-loader
刚接触 webpack。试图让 sass-loader 与我的 React 项目一起玩得很好,已经遵循教程。配置似乎正确,但结果总是“无法解析 'sass-loader'”。
我怀疑这是一些非常明显的错误,但我还没有进行多少搜索或谷歌搜索。任何帮助表示赞赏。
错误
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
Run Code Online (Sandbox Code Playgroud)
到目前为止我所做的(在所说的预先存在的反应项目上):
npm i --save-dev node-sass sass-loader
package.json,在 devDependencies 下
"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"
Run Code Online (Sandbox Code Playgroud)
索引.js
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'));
Run Code Online (Sandbox Code Playgroud)
webpack.config.react.js:
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'),
}),
]
Run Code Online (Sandbox Code Playgroud)
可能的混杂因素:这一切都在开发 docker 容器中运行。不过,它已经重建并且 npm install 再次运行。
Ish*_*age 20
转到项目并运行以下两个命令
npm install sass-loader -D
npm install node-sass -D
Run Code Online (Sandbox Code Playgroud)
Mie*_*aka 19
此问题可能是缓存造成的。无需重新启动项目。
在终端上运行以下命令
rm -r node_modules
Run Code Online (Sandbox Code Playgroud)
npm install
Run Code Online (Sandbox Code Playgroud)
npm install -D sass-loader@^10 sass
Run Code Online (Sandbox Code Playgroud)
如上面的评论 - 误报。在 Docker 镜像缓存和 npm 之间的某个地方,sass-loader 和 node-sass 模块被报告为已安装,而实际上并未安装。通常rm node_modules和没有缓存技巧的重建修复了它。
| 归档时间: |
|
| 查看次数: |
31497 次 |
| 最近记录: |