webpack 我如何解决这个关于Storybook和Sass的问题?

zynd9foi  于 11个月前  发布在  Webpack
关注(0)|答案(2)|浏览(139)

我有一个关于故事书的问题。我不能启动故事书,我有一个关于我的SCSS文件的错误。
这是一个错误:
ModuleParseError:模块解析失败:意外的标记(1:0)
您可能需要一个适当的加载程序来处理此文件类型,目前没有加载程序配置为处理此文件。请参阅https://webpack.js.org/concepts#loaders {|颜色:红色;|地址:/myproject/node_modules/@storybook/builder-webpack4/node_modules/webpack/lib/NormalModule.js:469:19
我的意思是这只是一个简单的类,但是当文件是空的时候,编译是可以的,所以我不明白我怎么能解决这个问题。
我的SCSS文件

.h1 {
  color: red;
}

字符串
我的Webpack文件

const webpack = require('webpack');
const path = require('path');

module.exports = {
  mode: 'development',
  entry: path.resolve(__dirname, './src/index.js'),
  module: {
    rules: [
      {
        test: /\.(js|jsx)$/,
        exclude: /node_modules/,
        use: ['babel-loader'],
      },
      {
        test: /\.scss?$/,
        exclude: /node_modules/,
        use: ['style-loader', 'css-loader', 'sass-loader']
      },
      {
        test: /\.(png|jpe?g|gif)$/i,
        loader: 'file-loader',
        options: {
          name: '[path][name].[ext]',
        },
      },
    ],
  },
  resolve: {
    extensions: ['*', '.js', '.jsx'],
  },
  output: {
    path: path.resolve(__dirname, './dist'),
    filename: 'bundle.js',
  },
  plugins: [new webpack.HotModuleReplacementPlugin()],
  devServer: {
    contentBase: path.resolve(__dirname, './dist'),
    hot: true,
  },
};


.storybook文件夹中的main.js文件

module.exports = {
  "stories": [
    "../src/**/*.stories.mdx",
    "../src/**/*.stories.@(js|jsx|ts|tsx)",
    "../src/**/**/*.stories.@(js|jsx|ts|tsx)"
  ],
  "addons": [
    "@storybook/addon-links",
    "@storybook/addon-essentials"
  ]
}


有没有人有解决办法?提前谢谢

gijlo24d

gijlo24d1#

最后,我解决了我的问题,这就是我是如何做到的。
首先,我重新安装了故事书(How to remove storybook from the react project),然后通过webpack(https://storybook.js.org/blog/storybook-for-webpack-5/)重新安装。有一次,使用Webpack可以工作,而使用NPM(或Yarn)安装它给我带来了我上面发布的复杂性。我的猜测是,它适用于Webpack 5,而使用NPM,我得到了一个关于css-loader loader的错误,告诉我关于Webpack 4。
Storybook工作了,但我仍然担心.scss文件。我的终端告诉我,我没有一个特定的加载器。所以我通过在安装Storybook时创建的.storybook文件夹中添加webpack.config.js来为这种类型的文件加载器。我使用了这里找到的说明:https://storybook.js.org/docs/react/configure/webpack
关于Sass文件:Storybook是区分大小写的,并且也不考虑以_开头的文件,因此不可能使用部分
我希望你没有这样的问题,但如果你有,也许这些答案会帮助你^^

zhte4eai

zhte4eai2#

对我来说,我不必遵循上面的步骤,但我确实需要调整preview.ts中的import语句,如下所示:

import '!style-loader!css-loader!sass-loader!../src/scss/app.scss';

字符串

相关问题