目前,当我为Angular 2创建npm包时,主要是Angular 2服务,我使用peerDependencies如下:
"peerDependencies": {
"@angular/core": "^2.0.0",
"rxjs": "5.0.0-beta.12",
"zone.js": "^0.6.6"
}
Run Code Online (Sandbox Code Playgroud)
我没有使用,dependencies因为我不想让我的包裹拉过来npm install.正如我所期望的那样,目标应用程序是Angular 2.
并将编译我的包所需的所有依赖项放入devDependencies:
"devDependencies": {
"@angular/core": "^2.0.0",
"rxjs": "5.0.0-beta.12",
"zone.js": "^0.6.6",
"typescript": "*",
"typings": "*"
}
Run Code Online (Sandbox Code Playgroud)
但是,我应该使用dependencies或peerDependencies?
我主要关注的是使用该软件包的应用程序.它们是否会影响消费应用程序的构建过程?
或者我做错了,应该切换回去dependencies?
我试图为另一个SO问题创建一个演示,首先是angular-cli,然后是punker.
我import在两个版本之间遇到了奇怪的行为差异.
问题import出现在以下代码中的第二个:
moment.service.ts
import { Injectable } from '@angular/core';
// Following work in plunker setup
import m from 'moment';
// Following work in angular-cli setup
//import * as m from 'moment';
@Injectable()
export class MomentService {
moment = m;
}
Run Code Online (Sandbox Code Playgroud)
在angular-cli代码中,我必须使用:
import * as m from 'moment';
Run Code Online (Sandbox Code Playgroud)
如果我使用punker设置,无论是在punker中还是在运行本地服务器,我必须关注或者它不会在浏览器中运行:
import m from 'moment';
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释行为的差异?
Plunker:链接
Github:plunker代码本地版本(包括一个本地服务的server.js)
Github:angular-cli版本
我开始使用 vscode 不到一个月。如果这是一个垃圾问题,请原谅我。
我重新启动了 VSCode,打开了 php 文件,但在右键菜单上没有看到“格式化代码”。
知道如何调试吗?现在我什至不知道插件是否正确加载。
在下面的 JavaScript 代码中,
obj = {};
// This work as intented
obj['a'] = { item1: 'a1', item2: 'a2' };
console.log(obj);
// Object.keys() works too
console.log(Object.keys(obj));
// forEach does not, why? and how to fix?
console.log('forEach');
obj.forEach(o => console.log(o));
Run Code Online (Sandbox Code Playgroud)
forEach 工作需要什么?