如何将变量从jade-loader传递到jade模板文件?

时间:2016-06-10 19:14:10

标签: pug webpack

我想将我的数据对象传递给jade文件,但这是不可能的 我的jade-loader

{
   test: /\.jade$/,
   loader: "jade",
   query: {
      pretty: true,
      locals: {
          name: "Georg"
    }
}

}

plugins

plugins: [
    new HtmlWebpackPlugin({
       filename: "index.html",
       template: "./src/jade/index.jade"
})]

index.jade

span=locals.name

我运行webpack,我得到了这个index.html

<span></span>

我的变量name没有通过。为什么?如何解决?

2 个答案:

答案 0 :(得分:1)

你应该使用pug-html-loader

然后在webpack.config.js

  ...
  {
    test:/\.pug$/,
    exclude: ['/node_modules/'],
    loader: 'pug-html-loader',
    query: {
      data: {name:'test'},
      pretty: true
    }
  },
  ...

然后在你的哈巴狗(玉)文件中,使用这个数据

 h3.title= data.name

答案 1 :(得分:1)

您可以将自定义属性传递给@Bean public String sqsMsgAttributeNames() { return String.format("%s,%s", "Attr1", "Attr2"); } 选项,并在您的哈巴狗模板中使用它们(请参阅文档中的htmlWebpackPlugin.options)。它适用于HtmlWebpackPluginHtmlWebpackPlugin和webpack 2的最新版本。无法确认它是否适用于以前的版本,但我相信它可以。

pug-loader规则:

pug

{ test: /\.pug$/, loader: 'pug-loader', options: { // Use `self` namespace to hold the locals // Not really necessary self: true, }, } 选项:

HtmlWebpackPlugin

{ filename: 'index.html', template: 'src/html/index.pug', // Your custom variables: name: 'Georg', } 模板中使用它:

index.pug

请注意,您可以将span= self.htmlWebpackPlugin.options.name 选项设置为self,并使用变量直接在您的哈巴狗模板中省略它。有关详细信息,请参阅Pug reference