意外字符“@”您可能需要适当的加载程序来处理此文件类型

2023-12-07

这是我尝试运行 webpack 时得到的结果:我得到的错误是:

“./v3/app/styles/main.scss 中出现错误 模块解析失败:/Users/vovina/widget-login-react/v3/app/styles/main.scss 意外字符“@”(1:0) 您可能需要合适的加载程序来处理此文件类型。”

它无法解决@import,对此有什么想法吗?

我的 webpack 配置如下:

    const childProcess = require('child_process')
    const CopyWebpackPlugin = require('copy-webpack-plugin')
    const ExtractTextPlugin = require('extract-text-webpack-plugin')
    const trimEnd = require('lodash/trimEnd')
    const webpack = require('webpack')
    const path = require('path')

    const ENV = {
      NODE_ENV: process.env.NODE_ENV,
      API: 'https://accounts' + (process.env.NODE_ENV === 'prd' ? '' : '-' 
    + process.env.NODE_ENV),
      BUILD_VERSION: trimEnd(childProcess.execSync('git rev-list HEAD --
    count').toString(), '\n'),
      BUILD_DATE: trimEnd(childProcess.execSync('git log --format="%cd" -n 
    1').toString(), '\n'),
      BUILD_COMMIT_ID: trimEnd(childProcess.execSync('git log --format="%h" 
    -n 1').toString(), '\n')
    }
    const prodLikeEnvironment = process.env.NODE_ENV === 'stg' || 
    process.env.NODE_ENV === 'prd'
    const CSS_MAPS = !prodLikeEnvironment
    module.exports = {

      entry: {
        init: [
          './app/init.js'
        ],
        login: [
          './app/login.js'
        ],
        authentication: [
          './v3/app/authenticator.js'
        ],
        common: [
          './app/common.js'
        ]
      },
      target: 'web',
      output: {
        path: path.join(__dirname, 'dist', process.env.NODE_ENV),
        pathinfo: true,
        publicPath: '/assets/widgets/login/v2/',
        filename: '[name].bundle.js',
        chunkFilename: '[id].bundle.js',
        libraryTarget: 'umd'
      },
      resolve: {
        alias: {
          'react': 'preact-compat',
          'react-dom': 'preact-compat'
        },
        modules: [
          path.resolve('./app'),
          path.resolve('./node_modules')
        ]
      },
      module: {
        loaders: [
          {
            test: /\.jsx?$/,
            loaders: ['babel-loader'],
            exclude: [/bower_components/, /node_modules/]
          },
          {
    // Transform our own .(scss|css) files with PostCSS and CSS-modules
            test: /\.(scss|css)$/,
            include: [path.resolve(__dirname, 'v3/app')],
            options: {
              sourceMap: true
            },
            loader: [
              `style-loader?singleton`,
              `css-loader?modules&importLoaders=1&localIdentName=
    [local]${process.env.CSS_MODULES_IDENT || 
    '_[hash:base64:5]'}&sourceMap=${CSS_MAPS}`,
              'postcss-loader',
              `sass-loader?sourceMap=${CSS_MAPS}`
            ].join('!')
          },
          {
            test: /\.(scss|css)$/,
            exclude: [path.resolve(__dirname, 'v3/app')],
            options: {
            sourceMap: true
            },
            loader: [
              `style-loader?singleton`,
              `css-loader?sourceMap=${CSS_MAPS}`,
              `postcss-loader`,
              `sass-loader?sourceMap=${CSS_MAPS}`
            ].join('!')
          },
          {
            test: /\.(svg|eot|woff|woff2?|ttf|otf)$/,
            use: 'base64-font-loader'
          },
          {
            test: /.json$/,
            loader: 'json'
          },
          {
            test: /\.jpe?g$|\.gif$|\.png$/,
            use: 'base64-image-loader'
          },
          {
            test: /\.html?$/,
            loader: 'html'
          },
          {
            test: /\.js$/,
            loader: 'strip-loader?strip[]=debug,strip[]=console.log,strip[]=console.debug,strip[]=console.info'
          }
        ]
      },
      plugins: [
        new webpack.LoaderOptionsPlugin({
          minimize: true
          // postcss: [
          //   autoprefixer({ browsers: 'last 2 versions' })
          // ]
        }),
        new CopyWebpackPlugin([
    { from: 'public' }
        ]),
        new ExtractTextPlugin('[name].bundle.css'),
        new webpack.DefinePlugin({
          ENV: JSON.stringify(ENV),
    // Only used for react prod bundle. Refer to ENV.NODE_ENV for business 
    logic
          'process.env': {
            'NODE_ENV': JSON.stringify('production')
          }
        }),
        new webpack.NoEmitOnErrorsPlugin(),
        new webpack.optimize.UglifyJsPlugin({
          output: {
            comments: false
          },
          compress: {
            unsafe_comps: true,
            properties: true,
            keep_fargs: false,
            pure_getters: true,
            collapse_vars: true,
            unsafe: true,
            warnings: false,
            screw_ie8: true,
            sequences: true,
            dead_code: true,
            drop_debugger: true,
            comparisons: true,
            conditionals: true,
            evaluate: true,
            booleans: true,
            loops: true,
            unused: true,
            hoist_funs: true,
            if_return: true,
            join_vars: true,
            cascade: true,
            drop_console: true
          }
        })
      ]
    }

您在配置文件中使用了 (scss|css) 两次。 删除它并使用下面发布的代码: 使用前,必须先npm install raw-loader。 我认为您已经安装了sass-loader.

{
  test: /\.css$/,
  include: helpers.root('src', 'app'),
  loader: 'raw-loader'
},
// // css global which not include in components
{
  test: /\.css$/,
  exclude: helpers.root('src', 'app'),
  use: ExtractTextPlugin.extract({
    use: 'raw-loader'
  })
},

{
  test: /\.scss$/,
  include: helpers.root('src', 'app'),
  use: ['raw-loader', 'sass-loader']
},
// // SASS global which not include in components
{
  test: /\.scss$/,
  exclude: helpers.root('src', 'app'),
  use: ExtractTextPlugin.extract({
    use: ['raw-loader', 'sass-loader']
  })
}

Add my root()功能。

var path = require('path'); 
var _root = path.resolve(__dirname, '..'); 
function root(args) {   
    args = Array.prototype.slice.call(arguments, 0);   
    return path.join.apply(path, [_root].concat(args)); 
} 
exports.root = root;

希望这会起作用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

意外字符“@”您可能需要适当的加载程序来处理此文件类型 的相关文章

随机推荐

  • 抑制 libsvm 中的输出 (python)

    我正在使用 python 中的 libsvm svmutils 来执行分类任务 分类器是准确的 但是 我得到这样的输出 optimization finished iter 75 nu 0 000021 obj 0 024330 rho 0
  • Sqlalchemy 将 WHERE 子句复制到 FROM

    我向 psql 编写了原始查询 它工作正常 但是当我在 sqlalchemy 中编写此查询时 我的 WHERE 子句复制到 FROM 子句 select id from T1 where arr array select l id from
  • 条件c++中对象的实例化

    假设我想根据某些情况实例化不同类型的对象 因此我会在 if 语句体内实例化它们 问题是如果您想稍后使用该对象 则需要在实例化之前声明它 如何声明一个通用对象 Java中有类似对象类的东西吗 我已经进行了一些谷歌搜索 例如 通用对象c 和 对
  • 从 Android HTML 资源创建 SQLite 表

    我尝试在 android 中使用 HTML 在 sqlite 中创建一个表 但它不起作用 示例 HTML 在这里
  • C# 函数和可选参数

    我知道在 C 中可以定义可选参数 我的问题是这有多灵活 令 f 为如下函数 其中a强制性和b c选修的 class Test public void f int a int b 2 int c 3 现在 我知道我可以通过以下方式调用该函数
  • 如何使用 Swift 3 为按钮制作摇动动画 [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我有一个每 3 秒调用一次的函数 我怎样才能制作一个晃动的动画button左右摇晃 func shakeButton if opened false Shake Animatio
  • VSCode 在片段中链接正则表达式转换

    我正在尝试通过两种方式在 VSCode 中自动转换文件名 假设我有test file name md 我想结束Test File Name在我的文档中 现在我可以分别完成转换的两个部分 但我正在努力寻找如何将它们组合起来 要删除所有 并将它
  • 当类型是映射的任何成员时提高 Typescript 速度?

    例如 我有这些类型 class User extends Entity class Post extends Entity type Entities user User post Post potentially hundreds mor
  • 如何将数据文件作为矩阵导入并从 python 脚本运行 .m 文件?

    我有一个 m 文件 用于在 matlab 中运行神经网络 该文件已本地安装在我的计算机上 我正在尝试编写一个 python 脚本 它将多次循环遍历神经网络可能的传输和训练 函数列表 我编写了一个函数来打开和编辑 m 文件 但我不知道如何操作
  • 从 .NET Windows 服务调用 COM 组件

    我有一个用 NET C 编写的 Windows 服务 它调用 COM 组件 我还有一个 NET Windows 窗体测试应用程序 用于测试 COM 组件 从测试应用程序来看它运行良好 但是 当我在 Windows 服务中使用相同的代码时 什
  • 检测 Bash“导出”值的失败

    在 Bash 中 我执行命令并将结果放入变量中 如下所示 export var svn ls 但是 如果 SVN 由于某种原因失败 例如它返回非零错误代码 则导出仍会返回状态代码 0 如何检测执行的命令是否失败 var svn ls if
  • 在 Ruby 中使用多个进程

    Ruby 是否有一个模块可以轻松地在多个进程之间共享对象 我正在寻找类似于Python的东西多重处理 它支持可以在进程之间共享的进程安全队列和管道 我认为您可以使用 Ruby IO 的功能做很多您想做的事情 你在进程之间共享 而不是线程之间
  • 在进行 Web 自动化时,如何使用空手道 DSL 与 Chrome 中的网络选项卡进行交互

    我正在使用空手道 DSL 编写 UI 自动化脚本 在这一点上 我需要从 Chrome 中的网络调用中获取价值 我想与 chrome devtools 网络选项卡中的 Web 服务调用之一进行交互 并获取该 Web 服务的 json 响应 我
  • 在 C# 中使用 P/Invoke 注册 _set_purecall_handler 函数

    我使用时遇到问题 set purecall handler使用 C 中的 P Invoke 基本上 这有效 C set purecall handler MyPureCallHandler void MyPureCallHandler vo
  • 输入被禁用,直到先前的输入被填充

    我想做的是 当用户登陆表单时 我希望第一个输入处于活动状态 以便用户能够单击 选择或填写它 我希望他们逐步填写表格 因此我希望只有在他们填写完当前输入后才激活下一个输入 我还希望禁用提交按钮 并且在填写所有输入之前不要激活提交按钮 实现这一
  • WPF 对齐容器中的项目

    所以我有这个简单的xaml
  • System.Double[*] 是什么意思

    这个 gem 是在我们反编译的一些互操作代码中创建的 我们不知道如何创建这个数组的实例 也不知道它是什么类型的数组 看着Type GetElementType告诉我它是一个类型数组Double 但我们无法弄清楚它与System Double
  • 限制对我网站上图像的访问,除非通过我自己的 html

    在我的网站上 我以简单的方式存储用户图片 例如 图像 user 1 jpg 我不希望访问者仅通过尝试 user ids 就能够查看我的服务器上的图像 例如 www mydomain com images user 2 jpg www myd
  • 如何序列化 JavaScript 关联数组?

    我需要序列化一个关联的 JavaScript 数组 这是产品和数值的简单形式 但在构建数组后似乎是空的 代码在这里 http jsbin com usupi6 4 edit 一般来说 不要将 JS 数组用于 关联数组 使用普通对象 var
  • 意外字符“@”您可能需要适当的加载程序来处理此文件类型

    这是我尝试运行 webpack 时得到的结果 我得到的错误是 v3 app styles main scss 中出现错误 模块解析失败 Users vovina widget login react v3 app styles main s