首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在webpack.config.js中定义css文件

在webpack.config.js中定义css文件
EN

Stack Overflow用户
提问于 2017-04-22 10:47:47
回答 1查看 310关注 0票数 1

我正在构建类似于静态网站生成器的东西,它使用webpack来构建这个项目,并与它一起创建一个包。

在此项目中,用户可以指定自定义css文件。我希望这些css文件与最终结果捆绑在一起。问题是,我在开发过程中没有找到那些css文件的路径,所以我无法在将要打包的javascript代码中执行import 'some-asset-file-provided-by-the-user.css'。但是当我打电话给webpack.compile(config)时,它们是可用的。

我正在寻找一种将这些css文件注入包的方法。到目前为止,我尝试了各种方法,例如:

代码语言:javascript
复制
const stylesheet = 'some-asset-file-provided-by-the-user.css'
require(stylesheet)

这是行不通的,可能是因为webpack不能处理这种“动态”的要求。然后我用webpack定义插件来做这个。

代码语言:javascript
复制
/* webpack.config.js */
new webpack.DefinePlugin({
  stylesheet: 'some-asset-file-provided-by-the-user.css'
}),

/* app.js */
require(stylesheet) // should be replaced by the webpack define plugin with 'some-asset-file-provided-by-the-user.css'

这也不起作用。我也试图找到一种方法来做这样的事情:

代码语言:javascript
复制
{
  test: /\.css$/,
  loader: ExtractTextPlugin.extract(Object.assign({
    fallback: 'style-loader',
    use: [
      {
        loader: 'css-loader',
        options: {
          useFiles: ['file-a.css', 'file-b.css']
        }
      }
    ]
  }, extractTextPluginOptions))
    // Note: this won't work without `new ExtractTextPlugin()` in `plugins`.
},

这也失败了,因为显然样式加载程序和css加载程序都不支持这种交互。

我怎么才能解决这个问题?我愿意为此编写一个插件,但我宁愿使用现有的插件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-22 11:14:53

包含CSS的最简单方法是将它添加到入口点。为了使这更容易,您应该使用一个数组作为入口点,即使它只是一个文件,所以您可以简单地推送CSS。

例如:

代码语言:javascript
复制
entry: {
  app: ['./src/index.js'],
  // Other entries
},

在编译脚本中,将其添加到entry.app,然后将其传递给webpack。

代码语言:javascript
复制
config.entry.app.push('./user.css');
const compiler = webpack(config);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43558289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档