我想使用此node.js模块https://github.com/mlin/node-assert-type
根据文档,声明模块;
var ty = require("assert-type"); //https://github.com/mlin/node-assert-type
var T = ty.Assert;
在实际操作中,这不起作用。出现一些coffeescript错误。
我必须做出以下解决方法;
var cs = require("coffee-script/register");//this line needed to require("assert-type")
var ty = require("assert-type"); //https://github.com/mlin/node-assert-type
var T = ty.Assert;
要使用此模块,我不得不使用npm install -g coffeescript
安装coffeescript。
有没有办法省略行var cs = require("coffee-script/register");
?毕竟,模块本身在本地使用coffeescript。我是以正确的方式做到的吗?
通常的做法是为使用咖啡脚本的node.js模块添加一行来加载coffeescript吗?
答案 0 :(得分:3)
这不是正常的做法。我的意思是,coffeescript安装是不可避免的,因为它是一个依赖项,但模块的用户不应该担心它。
我刚看了assert-type
的源代码,这就是我发现的:
该项目已有3年历史。那太多了!
package.json
列出coffeescript
作为依赖关系,但它使用latest
而不是锁定coffeescript版本,这是一种可怕的做法。
我的猜测是它改变的是coffeescript
模块,而不是需要require('coffeescript')
,现在需要require('coffeescript/register')
。 (看看回购中的index.js
)
基于此我说你写这条线很好。更好的选择是在node-assert-type
回购中进行更改并提交带有#2和#3修复的PR。
希望有所帮助。