Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于lang的选项建议 #43

Open
run27017 opened this issue Sep 28, 2018 · 1 comment
Open

关于lang的选项建议 #43

run27017 opened this issue Sep 28, 2018 · 1 comment

Comments

@run27017
Copy link
Contributor

前些日子我在使用mina-loader的时候,发现lang是通过一个languages的属性定义的,与我之前的方式不太一样,所以没有清除它的用法。我就写了这么一个配置:

const minaLoaderOptions = {
  loaders: {
    script: 'babel-loader',
    style: 'postcss-loadder'
  },
  languages: {
    scss: 'sass-loader'
  }
}

我希望当没有给lang属性的时候,走的是postcss-loader;当给定lang=scss的时候,走的是["postcss-loader", "sass-loader"].

结果如上配置的效果是,当给定lang=scss,只走了sass-loader。说实话,这个问题我还调试了半天,最后自己写了个loader才发现它根本没有走postcss-loader. 原来lang的配置是覆盖式的,而不是我以为的后置式。这点文档到没说清楚,我却先入为主地想当然了。

我的建议是,给定下面四种lang属性的配置:

{
  "languages": {
    "scss:before": "sass-loader", // 前置loader,即先postcss-loader、后sass-loader
    "scss:after": "sass-loader", // 后置loader,即先sass-loader、后postcss-loader
    "scss:override": "sass-loader", // 覆盖式loader,即只有sass-loader
    "scss": "sass-loader" // 默认使用后置loader,毕竟这是最常见的情况
  }
}
@baranwang
Copy link

baranwang commented Dec 24, 2018

const minaLoaderOptions = {
  loaders: {
    script: 'babel-loader',
    style: 'postcss-loadder'
  },
  languages: {
    scss: ['sass-loader', 'postcss-loadder']
  }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants