来自外部文件的Pug mixins不起作用

时间:2017-01-06 16:08:01

标签: laravel pug

我正在和Pug一起工作,我想创建一些mixins来为整个项目制作一些可重用的组件。我想创建一些文件只是为了使mixin分离和分类。当我想将带有mixins的文件包含到我的主文件中时,会出现问题。例如:

        if(connection.State.ToString() == "Closed")
        {
            connection.Open();
        }
        SqlCommand newCmd = connection.CreateCommand();
        newCmd.Connection = connection;
        newCmd.CommandType = CommandType.Text;
        newCmd.CommandText = string.Format(queriesMgr.getQuery(SqlQueriesID.IS_TABLE_EXISTS), "student", "OK");

        SqlDataReader reader = newCmd.ExecuteReader();


        if (reader.Read())
        {
            //not enter here(no data to read)
        }

这不起作用(当我想从单独的文件中包含mixins时)。我收到了这个错误:body block content include ./components/mixins/_mixins.pug +user_avatar('', '#', 'Daniel')

但是当我在文件中包含mixin时,它可以工作:

jade_mixins.user_avatar is not a function

有什么办法解决这个问题?是的,路径是正确的。为了编译哈巴狗,我使用body block content mixin user_avatar(avatar_url, profile_url, name) .user(class='4u 6u(small) 12u(xsmall)') a(href=profile_url) .user-avatar-thumbnail.is-active(style="background-image: url('" + avatar_url + "')") if name span.user-name=name +user_avatar('', '#', 'Daniel') 包作为laravel' elixir。

1 个答案:

答案 0 :(得分:2)

我试图重现你的问题,但在我的机器上,似乎工作得很好。我在下面列出了我为此做的设置,也许你可以找到你偏离这一点的地方。

我的目录结构:

|- html/
|--- template.html (generated after running gulp)
|- node_modules/
|- views/
|--- mixins/
|----- util.pug
|--- template.pug
|- gulpfile.js
|- package.json

我的package.json

{
    "name": "test",
    "version": "1.0.0",
    "main": "gulpfile.js",
    "license": "MIT",
    "dependencies": {
        "gulp": "^3.9.1",
        "laravel-elixir": "^6.0.0-15",
        "laravel-elixir-pug": "^1.3.2",
        "pug": "^2.0.0-beta6"
    }
}

我的template.pug

body
    block content
        include mixins/util
        +test()

util.pug文件:

mixin test()
    p Test

gulpfile.js

var elixir = require('laravel-elixir');

require('laravel-elixir-pug');

elixir(function (mix) {
    mix
        .pug({
            blade: false,
            src: './views',
            search: '**/*.pug',
            pugExtension: '.pug',
            dest: './html'
        });
});

在根目录中运行gulp后,会按预期生成以下template.html

<body>
    <p>Test</p>
</body>