在webpack中,如何映射Require.js CSS!插件语法使用LESS模块规则?

时间:2018-09-04 23:51:29

标签: webpack webpack-style-loader vue-cli webpack-loader

我正在尝试获取webpack 4(通过一个大多数已经使用Vue CLI 3进行引导的项目来捆绑),以捆绑一个当前正在使用Sprockets / Rails资产管道+ Require.js的现有项目

背景

该项目有许多require语句,如下所示:

require('css!./styles')

在当前的Rails应用程序上下文中,这实际上意味着一个文件styles.less(请注意它是.less),然后Sprockets负责确保{{1} }将会存在,这样当Require.js生成所有内容时,它甚至都不知道LESS文件是否存在。

我想要的

当webpack看到styles.css时,它应该寻找一个名为require('css!./styles')的文件,但是应该找到处理LESS文件的现有webpack规则。由于相关的配置(styles.less)在这里,所以这不仅仅是一个插件:

config.module.rule('less')

我面临的问题:

  1. 怎么说呢?要求以{ // ... module: { rules: [ /* config.module.rule('less') */ { test: /(\.less$)/, oneOf: [ // ... /* config.module.rule('less').oneOf('normal') */ { use: [ /* config.module.rule('less').oneOf('normal').use('vue-style-loader') */ { loader: 'vue-style-loader', options: { sourceMap: false, shadowMode: false } }, /* config.module.rule('less').oneOf('normal').use('css-loader') */ { loader: 'css-loader', options: { sourceMap: false, importLoaders: 2 } }, /* config.module.rule('less').oneOf('normal').use('postcss-loader') */ { loader: 'postcss-loader', options: { sourceMap: false } }, /* config.module.rule('less').oneOf('normal').use('less-loader') */ { loader: 'less-loader', options: { sourceMap: false } } ] } ] } ] } } 开头的地方应该调用上面的LESS规则?
  2. 当require以css!开头时,如何重写所需的路径? css!require('css!./styles')都应映射到require('css!./styles.css')

可能相关:

0 个答案:

没有答案