禁止使用browserify中的敏感文件

时间:2014-11-10 23:13:21

标签: javascript browserify

Browserify允许在服务器和客户端上使用相同的模块,这很好。

但是,我不希望将某些文件包含在browserify包中,例如包含敏感数据的属性文件。显然我不会有意包含它,但我想更进一步,防止它甚至可能出现,偶然或不熟悉设置的开发人员。

现在我有这个:

// fail browserify but not node
try { require('./kill/browserify'); }
catch(ex) {}

...我认为应该有效,因为节点包含动态但是browserify包含静态,但我想知道是否有一种不那么强硬的方式?像某种评论指令:

// is something like this possible?
/* @browserify disallow */

1 个答案:

答案 0 :(得分:2)

exclude怎么样?

  

- exclude,-u从输出包中省略文件。文件可以是globs。

     

如果您的代码尝试require()该文件,它将抛出,除非您提供了另一种加载它的机制。

上述答案仅在运行时 ,如@greim所述。应该在捆绑时工作的另一个解决方案是使用browserify转换器将受保护的文件别名化为不存在的文件。

使用aliasify:

aliasify = require('aliasify').configure({
    aliases: {
        "file-protected": "./path/to/protected"
    }
});

var b = browserify();
b.transform(aliasify);
...