在节点模块中手动添加方法
Manually adding method in a node module
我正在为我的网站使用 material-ui
,在 npm
上找到的包已经过时,最新版本(在 Github 上找到)。我手动将这行代码添加到他们的主题管理器 class 中,这反映了更改:
setContentFontFamily(newContentFontFamily) {
if (typeof newContentFontFamily !== "undefined" && newContentFontFamily !== null) {
this.contentFontFamily = newContentFontFamily;
this.component = Extend(this.component, this.template.getComponentThemes(this.palette, this.spacing));
}
},
但是,我的应用程序尚未注册这些更改,当我尝试设置字体时:
ThemeManager.setContentFontFamily('Open Sans, Roboto, sans serif');
控制台给我这个错误:
Uncaught TypeError: ThemeManager.setContentFontFamily is not a function
我正在使用 Browserify 来捆绑我的客户端 'require' 依赖项。这是 Browserify 问题,npm
问题,还是我不了解节点模块的工作原理?
编辑:这是我的 package.json
{
"name": "FooProject",
"version": "0.0.0",
"description": "",
"dependencies": {
"highlight.js": "^8.7.0",
"material-ui": "callemall/material-ui",
"react": "^0.13.3",
"react-bootstrap": "^0.24.5",
"react-highlight": "^0.5.0",
"react-tap-event-plugin": "^0.1.7",
"underscore": "^1.8.3"
},
"author": "Tina Zheng",
"devDependencies": {
"babelify": "^6.1.3",
"bower": "^1.4.1",
"browserify": "^11.0.1",
"gulp": "^3.9.0",
"gulp-react": "^3.0.1",
"gulp-reactify": "^3.0.1"
}
}
您的问题的快速解决方案(除了联系作者并要求他们更新 npm 之外)是使用存储库 url 作为依赖项而不是 npm 模块:
git://github.com/user/project.git#commit-ish
如果存储库在 GitHub 上,您可以使用缩写形式:
"dependencies": {
"express": "visionmedia/express",
"mocha": "visionmedia/mocha#4727d357ea"
}
(docs)
如果直接编辑依赖项,每次重建时它们都会被覆盖。
我正在为我的网站使用 material-ui
,在 npm
上找到的包已经过时,最新版本(在 Github 上找到)。我手动将这行代码添加到他们的主题管理器 class 中,这反映了更改:
setContentFontFamily(newContentFontFamily) {
if (typeof newContentFontFamily !== "undefined" && newContentFontFamily !== null) {
this.contentFontFamily = newContentFontFamily;
this.component = Extend(this.component, this.template.getComponentThemes(this.palette, this.spacing));
}
},
但是,我的应用程序尚未注册这些更改,当我尝试设置字体时:
ThemeManager.setContentFontFamily('Open Sans, Roboto, sans serif');
控制台给我这个错误:
Uncaught TypeError: ThemeManager.setContentFontFamily is not a function
我正在使用 Browserify 来捆绑我的客户端 'require' 依赖项。这是 Browserify 问题,npm
问题,还是我不了解节点模块的工作原理?
编辑:这是我的 package.json
{
"name": "FooProject",
"version": "0.0.0",
"description": "",
"dependencies": {
"highlight.js": "^8.7.0",
"material-ui": "callemall/material-ui",
"react": "^0.13.3",
"react-bootstrap": "^0.24.5",
"react-highlight": "^0.5.0",
"react-tap-event-plugin": "^0.1.7",
"underscore": "^1.8.3"
},
"author": "Tina Zheng",
"devDependencies": {
"babelify": "^6.1.3",
"bower": "^1.4.1",
"browserify": "^11.0.1",
"gulp": "^3.9.0",
"gulp-react": "^3.0.1",
"gulp-reactify": "^3.0.1"
}
}
您的问题的快速解决方案(除了联系作者并要求他们更新 npm 之外)是使用存储库 url 作为依赖项而不是 npm 模块:
git://github.com/user/project.git#commit-ish
如果存储库在 GitHub 上,您可以使用缩写形式:
"dependencies": {
"express": "visionmedia/express",
"mocha": "visionmedia/mocha#4727d357ea"
}
(docs)
如果直接编辑依赖项,每次重建时它们都会被覆盖。