小编Chr*_*ght的帖子

在使用Node进行SASS编译期间注入变量

在我正在使用的应用程序中,我必须在客户端上呈现之前动态编译SASS(缓存系统即将到来,不用担心).目前我正在使用node-sass,一切都很好.

这是我到目前为止所做的工作.为简洁起见,已删除其他项目特定代码:

var sass            = require('node-sass'),
    autoprefixer    = require('autoprefixer-core'),
    vars            = require('postcss-simple-vars'),
    postcss         = require('postcss'),

function compileCSS() {
    var result = sass.renderSync({
            file: 'path/to/style.scss'
        });

    return postcss([autoprefixer]).process(result.css.toString()).css;
}
Run Code Online (Sandbox Code Playgroud)

皱纹是现在我需要从Node传递动态数据并将其编译为普通的SASS变量.最初我尝试使用PostCSS,因为我注意到它可以做变量注入.不幸的是,这不起作用.PostCSS在编译阶段开始,在这一点上惨败.

接下来,我尝试使用下划线模板尝试使用node-sass覆盖' importer():

var result = sass.renderSync({
        file: 'path/to/style.scss',
        importer: function(url, prev, done) {
            var content = fs.readFileSync(partial_path),
                partial = _.template(content.toString());

            return {
                contents: partial({ test: 'test' })
            };
        }
    });
Run Code Online (Sandbox Code Playgroud)

这导致以下错误:

Error: error reading values after :
Run Code Online (Sandbox Code Playgroud)

显然,SASS不喜欢下划线的变量语法.


TL; DR

如何从我的Node应用程序中将动态变量传递给SASS?


附加信息 …

css sass node.js express node-sass

25
推荐指数
2
解决办法
1万
查看次数

如何使用Node,Mocha获取代码覆盖率信息

我最近在Mocha的帮助下开始进行Node项目的单元测试.到目前为止事情进展顺利,我发现我的代码已经有了很大的改进,因为我正在考虑在我的测试中涵盖的所有角度.

现在,我想与我的团队其他成员分享我的经验,并让他们自己进行测试.我想分享的部分信息是我的代码实际涵盖了多少.

下面是我的应用程序结构示例,我将其分成不同的组件或模块.为了促进重用,我试图将所有依赖项保持在最低限度并与组件文件夹隔离.这包括保持测试隔离,而不是test/项目根目录中的默认文件夹.

| app/
| - component/
| -- index.js
| -- test/
| ---- index.js
Run Code Online (Sandbox Code Playgroud)

目前我package.json看起来像这样.我正在和伊斯坦布尔一起,但我与之无关.我也尝试过使用Blanket,取得了类似的成功.

{
  "scripts": {
    "test": "clear && mocha app/ app/**/test/*.js",
    "test-cov": "clear && istanbul cover npm test"
}
Run Code Online (Sandbox Code Playgroud)

如果我test-cov按原样运行我的命令,我从伊斯坦布尔得到以下错误(这没有帮助):

No coverage information was collected, exit without writing coverage information
Run Code Online (Sandbox Code Playgroud)

所以我的问题是:鉴于我目前的应用程序结构和环境,如何使用Istanbul(或其他工具)正确报告我的代码覆盖率?


TL; DR

如何使用Node,Mocha和我当前的应用程序结构报告我的代码覆盖率?


编辑

需要说明的是,Mocha正在当前状态下正确运行测试.获取代码覆盖率报告是我努力工作的原因.

编辑2

我收到通知,其他问题可能已经回答了我的问题.它只建议安装伊斯坦布尔并运行cover我已经完成的命令.另一个建议建议运行测试命令_mocha,我从一些研究中做的是阻止伊斯坦布尔吞下摩卡的标志,在新版本的摩卡中不是必需的.

testing mocha.js node.js istanbul

22
推荐指数
1
解决办法
3903
查看次数

标签 统计

node.js ×2

css ×1

express ×1

istanbul ×1

mocha.js ×1

node-sass ×1

sass ×1

testing ×1