抖音小程序Mona框架想要模块化引入less只能将less文件命名为xxx.module.less,但是我想让它可以直接使用xxx.less,所以就在mona.config.ts配置chain来修改 webpack配置,下面是我写的代码:
chain: (config) => {
config.module
.rule('less')
.test(/\.less$/)
.use('style-loader')
.loader('style-loader')
.end()
.use('css-loader')
.loader('css-loader')
.options({
importLoaders: 1,
sourceMap: true, // 开启 CSS Modules
})
.end()
.use('less-loader')
.loader('less-loader')
.options({
lessOptions: {
javascriptEnabled: true,
},
})
.end()
},
然后项目就报错了:
Module build failed (from ./node_modules/less-loader/dist/cjs.js):
// Imports
import CSS_LOADER_API_SOURCEMAP_IMPORT from "../../../node_modules/css-loader/dist/runtime/sourceMaps.js";
在网上搜索报错信息找了很多方法都没有解决,有大佬救救吗?
在抖音小程序Mona框架中,修改webpack配置以支持.less
文件作为CSS Modules使用时,通常你不需要手动在文件名后添加.module
后缀,因为CSS Modules是通过webpack的配置选项来启用的,而不是通过文件名约定。
然而,从你提供的配置和错误信息来看,有几个潜在的问题需要解决:
css-loader
选项中,sourceMap
只是启用CSS源映射,它本身并不开启CSS Modules。CSS Modules是通过在loader配置中添加特定的查询参数(如modules: true
)来启用的。css-loader
的options
中添加modules: true
。style-loader
与小程序:通常在小程序环境中,你不会使用style-loader
,因为它主要用于将CSS注入到DOM中的<style>
标签中,而小程序有其自己的样式系统。基于以上分析,这里有一个修改后的webpack配置示例,它应该适用于抖音小程序Mona框架并启用CSS Modules:
chain: (config) => {
config.module
.rule('less')
.test(/\.less$/)
.use('css-loader')
.loader('css-loader')
.options({
modules: true, // 启用CSS Modules
importLoaders: 2, // 因为后面有less-loader,所以这里设置为2
sourceMap: true, // 如果你需要源映射
})
.end()
.use('less-loader')
.loader('less-loader')
.options({
lessOptions: {
javascriptEnabled: true,
},
})
.end();
// 注意:这里没有使用style-loader,因为小程序不需要它
// ... 其他配置
},
注意,我已经移除了style-loader
并更新了importLoaders
的值为2
,因为现在有css-loader
和less-loader
两个loader会处理CSS。
此外,请确保你的项目依赖中包含了css-loader
和less-loader
,并且它们的版本与你的项目兼容。
如果修改后仍然遇到问题,请检查以下几点:
.less
文件冲突。当我试着运行我的应用程序时,我遇到了这个错误,我使用的依赖项和我一直使用的一样,所以我对此感到非常困惑。 警告 进来/资产/css/风格。css 模块警告(来自./node_modules/postss loader/src/index.js): (13:3)开始值有混合支持,请考虑使用flex开始,而不是友好错误18:06:28@/资产/css/风格。css@。nuxt/App。js@。nuxt
构建用户程序框架 接下来我们要做的工作,和实验准备中为操作系统「去除依赖」的工作十分类似:我们需要为用户程序提供一个类似的没有Rust std标准运行时依赖的极简运行时环境。这里我们会快速梳理一遍我们为用户程序进行的流程。 建立 crate 我们在 os 的旁边建立一个 user crate。此时,我们移除默认的 main.rs,而是在 src 目录下建立 lib 和 bin 子目录, 在 lib
我有一个Jenkins/Maven/Git多模块项目,其中包含一个子模块(由承包商开发,没有什么可以改变它)。由于Git和子模块,我必须使用命令“Git Clone-recursive ssh://xxxxxxx.Git”在Linux中克隆repo。 这意味着我必须检查Jenkins Git插件选项“Advanced sub-modules Behavious”和“recursivy update
问题内容: 尝试使用Webpack4和Babel7构建React应用时,我遇到以下错误。 ./src/index.js中的错误模块构建失败(来自./node_modules/babel-loader/lib/index.js):错误:无法从’/ Users / me / Desktop /找到模块’babel-preset-react’ reflask’-如果要解析“ react”,请使用“ mo
1. 逻辑层 1.1注册小程序 App(Object) App() 函数用来注册一个小程序。接受一个 Object 参数, App() 必须在 app.js 中调用,且只能调用一次。 Object参数说明 属性 类型 描述 触发时机 onLaunch Function 生命周期回调—监听小程序初始化 小程序初始化完成时触发(全局只触发一次) onShow Function 生命周期回调—监听小程
失败:生成失败,出现异常。 出了什么问题:任务'执行失败:app: check DebugAarMetadata'。 发生多个任务操作失败:执行com时发生故障。Android建筑格雷德尔。内部的任务。CheckAarMetadataWorkAction > 尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。运行--扫描以获得完整