我的术语可能不正确,我承认我不知道在使用类型编写的库如何在安装到node_modules
文件夹之前将其编译为javascript的整个过程,但是:
来自PHP背景我习惯于能够深入了解我在vendors
文件夹中通过composer下载的任何库,并查看库中编写的实际 php代码
在我目前的Angular 2项目中,当我下载我得到的打字稿库时,我不知道正确的术语,但它基本上是一个抽象类或某种合同(我猜一个类声明?):
export declare class FormGroup extends AbstractControl {
controls: {
[key: string]: AbstractControl;
};
constructor(controls: {
[key: string]: AbstractControl;
}, validator?: ValidatorFn, asyncValidator?: AsyncValidatorFn);
/**
* Registers a control with the group's list of controls.
*
* This method does not update value or validity of the control, so for
* most cases you'll want to use {@link FormGroup.addControl} instead.
*/
registerControl(name: string, control: AbstractControl): AbstractControl;
/**
* Add a control to this group.
然后用js编译的类:
export var FormGroup = (function (_super) {
__extends(FormGroup, _super);
/**
* @param {?} controls
* @param {?=} validator
* @param {?=} asyncValidator
*/
function FormGroup(controls, validator, asyncValidator) {
if (validator === void 0) { validator = null; }
if (asyncValidator === void 0) { asyncValidator = null; }
_super.call(this, validator, asyncValidator);
this.controls = controls;
this._initObservables();
this._setUpControls();
this.updateValueAndValidity({ onlySelf: true, emitEvent: false });
然后是映射:
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../../../modules/@angular/forms/src/model.ts"],
是否有可能将参数传递给npm所以这个库只会在typescript中下载,我会让webpack将它编译成js(当然纯粹用于开发目的)所以我可以浏览实际的我在开发时的来源?
现在,每当我想阅读源代码时,我必须浏览github。这是怎么做的?
答案 0 :(得分:2)
没有。如果一个模块发布到npm而没有可用的源,那就是它。您必须在github上查看模块源代码(或者在任何地方)。
您可以通过github(npm install username/repo-name
)安装,以便在您的node_modules中获取它们的repo,但这可能不包含已编译的JS。