io17's People
Forkers
jeffersonbraga kattsushi legacy-account zhentian-wan daonhan kuldeepkeshwar markgoho michaelonubogu chaluvadis sohailalam2 jaskru jayrgee liuchang0920 amolkhot darshanahettiarachchi ipeeyush teochengyong mkmurali ask83 raytimbadevio17's Issues
"Cannot find module" when using ngu-sw-manifest --module
I'm trying to use the --module option in my Angular app, but the following error appears:
C:\Users\aerojas\Documents\MyApp\Workspace\MyApp>.\node_modules\.bin\ngu-sw-manifest --module .\src\app\app.module.ts
Unhandled Promise rejection: ENOENT: no such file or directory, open 'C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\app.component.html' ; Zone: <root> ; Task: Promise.then ; Value: { Error: ENOENT: no such file or directory, open
'C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\app.component.html'
at Object.fs.openSync (fs.js:584:18)
at Object.fs.readFileSync (fs.js:491:33)
at C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\ng-pwa-tools\lib\common\ng.js:24:24
at new ZoneAwarePromise (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\zone.js\dist\zone-nod
e.js:834:29)
at FileLoader.get (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\ng-pwa-tools\lib\common\ng.
js:23:16)
at DirectiveNormalizer._fetch (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\@angular\compiler\bundles\compiler.umd.js:14095:43)
at DirectiveNormalizer.normalizeTemplateOnly (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\
@angular\compiler\bundles\compiler.umd.js:14138:29)
at DirectiveNormalizer.normalizeTemplate (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\@angular\compiler\bundles\compiler.umd.js:14122:36)
at CompileMetadataResolver.loadDirectiveMetadata (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\@angular\compiler\@angular\compiler.es5.js:15121:44)
at C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\@angular\compiler\@angular\compiler.es5.js:
26692:66
errno: -4058,
code: 'ENOENT',
syscall: 'open',
path: 'C:\\Users\\aerojas\\Documents\\MyApp\\Workspace\\MyApp\\app.component.html',
__zone_symbol__currentTask:
ZoneTask {
_zone:
Zone {
_properties: {},
_parent: null,
_name: '<root>',
_zoneDelegate: [Object] },
runCount: 0,
_zoneDelegates: null,
_state: 'notScheduled',
type: 'microTask',
source: 'Promise.then',
data: undefined,
scheduleFn: undefined,
cancelFn: null,
callback: [Function],
invoke: [Function] } } Error: ENOENT: no such file or directory, open 'C:\Users\aerojas\Documents\MyApp\Workspace\S
CC17-Cliente\app.component.html'
at Object.fs.openSync (fs.js:584:18)
at Object.fs.readFileSync (fs.js:491:33)
at C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\ng-pwa-tools\lib\common\ng.js:24:24
at new ZoneAwarePromise (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\zone.js\dist\zone-node.js:834:29)
at FileLoader.get (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\ng-pwa-tools\lib\common\ng.js:23:16)
at DirectiveNormalizer._fetch (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\@angular\compiler\bundles\compiler.umd.js:14095:43)
at DirectiveNormalizer.normalizeTemplateOnly (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\
@angular\compiler\bundles\compiler.umd.js:14138:29)
at DirectiveNormalizer.normalizeTemplate (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\@angular\compiler\bundles\compiler.umd.js:14122:36)
at CompileMetadataResolver.loadDirectiveMetadata (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\@angular\compiler\@angular\compiler.es5.js:15121:44)
at C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\@angular\compiler\@angular\compiler.es5.js:26692:66
{ Error: Uncaught (in promise): Error: ENOENT: no such file or directory, open 'C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\app.component.html'
Error: ENOENT: no such file or directory, open 'C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\app.component.html'
at Object.fs.openSync (fs.js:584:18)
at Object.fs.readFileSync (fs.js:491:33)
at C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\ng-pwa-tools\lib\common\ng.js:24:24
at new ZoneAwarePromise (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\zone.js\dist\zone-node.js:834:29)
at FileLoader.get (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\ng-pwa-tools\lib\common\ng.js:23:16)
at DirectiveNormalizer._fetch (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\@angular\compiler\bundles\compiler.umd.js:14095:43)
at DirectiveNormalizer.normalizeTemplateOnly (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\
@angular\compiler\bundles\compiler.umd.js:14138:29)
at DirectiveNormalizer.normalizeTemplate (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\@angular\compiler\bundles\compiler.umd.js:14122:36)
at CompileMetadataResolver.loadDirectiveMetadata (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\@angular\compiler\@angular\compiler.es5.js:15121:44)
at C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\@angular\compiler\@angular\compiler.es5.js:26692:66
at resolvePromise (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\zone.js\dist\zone-node.js:770:31)
at resolvePromise (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\zone.js\dist\zone-node.js:741:17)
at C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\zone.js\dist\zone-node.js:818:17
at ZoneDelegate.invokeTask (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\zone.js\dist\zone-node.js:424:31)
at Zone.runTask (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\zone.js\dist\zone-node.js:191:47)
at drainMicroTaskQueue (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\zone.js\dist\zone-node.js:584:35)
at process._tickDomainCallback (internal/process/next_tick.js:135:7)
at Function.Module.runMain (module.js:607:11)
at Object.<anonymous> (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\ts-node\src\_bin.ts:177:12)
at Module._compile (module.js:571:32)
rejection:
{ Error: ENOENT: no such file or directory, open 'C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\app.component.html'
at Object.fs.openSync (fs.js:584:18)
at Object.fs.readFileSync (fs.js:491:33)
at C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\ng-pwa-tools\lib\common\ng.js:24:24
at new ZoneAwarePromise (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\zone.js\dist\zone-node.js:834:29)
at FileLoader.get (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\ng-pwa-tools\lib\common\ng.js:23:16)
at DirectiveNormalizer._fetch (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\@angular\compiler\bundles\compiler.umd.js:14095:43)
at DirectiveNormalizer.normalizeTemplateOnly (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\@angular\compiler\bundles\compiler.umd.js:14138:29)
at DirectiveNormalizer.normalizeTemplate (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\@angular\compiler\bundles\compiler.umd.js:14122:36)
at CompileMetadataResolver.loadDirectiveMetadata (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\@angular\compiler\@angular\compiler.es5.js:15121:44)
at C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\@angular\compiler\@angular\compiler.es5.js:26692:66
errno: -4058,
code: 'ENOENT',
syscall: 'open',
path: 'C:\\Users\\aerojas\\Documents\\MyApp\\Workspace\\MyApp\\app.component.html',
__zone_symbol__currentTask:
ZoneTask {
_zone: [Object],
runCount: 0,
_zoneDelegates: null,
_state: 'notScheduled',
type: 'microTask',
source: 'Promise.then',
data: undefined,
scheduleFn: undefined,
cancelFn: null,
callback: [Function],
invoke: [Function] } },
promise:
ZoneAwarePromise {
__zone_symbol__state: 0,
__zone_symbol__value:
{ Error: ENOENT: no such file or directory, open 'C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\app.component.html'
at Object.fs.openSync (fs.js:584:18)
at Object.fs.readFileSync (fs.js:491:33)
at C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\ng-pwa-tools\lib\common\ng.js:24:24
at new ZoneAwarePromise (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\zone.js\dist\zone-node.js:834:29)
at FileLoader.get (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\ng-pwa-tools\lib\common\ng.js:23:16)
at DirectiveNormalizer._fetch (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\@angular\compiler\bundles\compiler.umd.js:14095:43)
at DirectiveNormalizer.normalizeTemplateOnly (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\@angular\compiler\bundles\compiler.umd.js:14138:29)
at DirectiveNormalizer.normalizeTemplate (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\@angular\compiler\bundles\compiler.umd.js:14122:36)
at CompileMetadataResolver.loadDirectiveMetadata (C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\@angular\compiler\@angular\compiler.es5.js:15121:44)
at C:\Users\aerojas\Documents\MyApp\Workspace\MyApp\node_modules\@angular\compiler\@angular\compiler.es5.js:26692:66
errno: -4058,
code: 'ENOENT',
syscall: 'open',
path: 'C:\\Users\\aerojas\\Documents\\MyApp\\Workspace\\SCC17Cliente\\app.component.html',
__zone_symbol__currentTask: [Object] } },
zone:
Zone {
_properties: {},
_parent: null,
_name: '<root>',
_zoneDelegate:
ZoneDelegate {
_taskCounts: [Object],
zone: [Circular],
_parentDelegate: null,
_forkZS: null,
_forkDlgt: null,
_forkCurrZone: null,
_interceptZS: null,
_interceptDlgt: null,
_interceptCurrZone: null,
_invokeZS: null,
_invokeDlgt: null,
_invokeCurrZone: null,
_handleErrorZS: null,
_handleErrorDlgt: null,
_handleErrorCurrZone: null,
_scheduleTaskZS: null,
_scheduleTaskDlgt: null,
_scheduleTaskCurrZone: null,
_invokeTaskZS: null,
_invokeTaskDlgt: null,
_invokeTaskCurrZone: null,
_cancelTaskZS: null,
_cancelTaskDlgt: null,
_cancelTaskCurrZone: null,
_hasTaskZS: null,
_hasTaskDlgt: null,
_hasTaskDlgtOwner: null,
_hasTaskCurrZone: null } },
task:
ZoneTask {
_zone:
Zone {
_properties: {},
_parent: null,
_name: '<root>',
_zoneDelegate: [Object] },
runCount: 0,
_zoneDelegates: null,
_state: 'notScheduled',
type: 'microTask',
source: 'Promise.then',
data: undefined,
scheduleFn: undefined,
cancelFn: null,
callback: [Function],
invoke: [Function] } }
It seems the issue has to do with how the tool (or its dependencies) solve the directories:
In my app.component.ts
file, my templateUrl is ./app.component.html
and it works fine when compiling (ng serve
). If I modify it to something like ./src/app/app.component.html
it works fine with ngu-sw-manifest
, but fails when I do ng serve because it cannot find the .html file. And the problem extends all the components in my app.
If I move to src/
and run ../node_modules/.bin/ngu-sw-manifest --module ./app/app.module.ts
I get ../node_modules/.bin/ngu-sw-manifest: line 12: node_modules/.bin/ts-node: No such file or directory
Thank you.
AngularFireDatabaseModule and ng-pwa-tools
I've been trying to use angularfire2
with the ng-pwa-tools
, but when I get to the using the ngu-app-shell
tool or the ngu-sw-manifest
I have the following error.
> [email protected] ngu-app-shell /Users/michaelsolati/Documents/workspace/my-cool-site
> ngu-app-shell --module src/app/app.module.ts --out dist/index.html
/Users/michaelsolati/Documents/workspace/my-cool-site/node_modules/@angular/compiler/bundles/compiler.umd.js:1724
var /** @type {?} */ error = Error(msg);
^
Error: Unexpected value 'undefined' imported by the module 'SharedModule'
at syntaxError (/Users/michaelsolati/Documents/workspace/my-cool-site/node_modules/@angular/compiler/bundles/compiler.umd.js:1724:34)
at /Users/michaelsolati/Documents/workspace/my-cool-site/node_modules/@angular/compiler/@angular/compiler.es5.js:15384:27
at Array.forEach (native)
at CompileMetadataResolver.getNgModuleMetadata (/Users/michaelsolati/Documents/workspace/my-cool-site/node_modules/@angular/compiler/@angular/compiler.es5.js:15361:42)
at CompileMetadataResolver.getNgModuleSummary (/Users/michaelsolati/Documents/workspace/my-cool-site/node_modules/@angular/compiler/@angular/compiler.es5.js:15303:10)
at /Users/michaelsolati/Documents/workspace/my-cool-site/node_modules/@angular/compiler/@angular/compiler.es5.js:15376:65
at Array.forEach (native)
at CompileMetadataResolver.getNgModuleMetadata (/Users/michaelsolati/Documents/workspace/my-cool-site/node_modules/@angular/compiler/@angular/compiler.es5.js:15361:42)
at CompileMetadataResolver.getNgModuleSummary (/Users/michaelsolati/Documents/workspace/my-cool-site/node_modules/@angular/compiler/@angular/compiler.es5.js:15303:10)
at /Users/michaelsolati/Documents/workspace/my-cool-site/node_modules/@angular/compiler/@angular/compiler.es5.js:15376:65
I'm pretty sure I'm going through the angularfire2
set up correctly as it works perfectly fine when I'm testing/developing/building. It's just with the ng-pwa-tools
these errors pop up.
Module
@NgModule({
imports: [
AngularFireModule.initializeApp(environment.firebase),
AngularFireDatabaseModule
],
declarations: [],
providers: [ CoolService ],
exports: []
})
export class SharedModule {
constructor(private _cs: CoolService) { }
static forRoot(): ModuleWithProviders {
return { ngModule: SharedModule };
}
}
Service
@Injectable()
export class CoolService {
private _cool: Observable<any[]>;
constructor(private _afd: AngularFireDatabase) {
this._cool = this._afd.list('/cool');
}
get cool(): Observable<any[]> {
return this._cool;
}
}
How to use ngu-app-shell with @angular/cli
I try to follow excellent talk you guys gave to generate basic appliation shell, but I'm getting an error:
ngu-app-shell --module src/app/app.module.ts
.../node_modules/ts-node/src/index.ts:159
throw new TSError(configDiagnostics)
^
TSError: ⨯ Unable to compile TypeScript
The 'files' list in config file 'tsconfig.json' is empty. (18002)
at load (.../node_modules/ts-node/src/index.ts:159:13)
at service (.../node_modules/ts-node/src/index.ts:285:32)
at Object.register (.../node_modules/ts-node/src/index.ts:316:5)
at Object.<anonymous> (.../node_modules/ts-node/src/_bin.ts:157:17)
at Module._compile (module.js:571:32)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
at Module.runMain (module.js:605:10)
Project was generated with @angular/cli
Failing on windows
I get this error on Windows:
D:\projects\komed-health-web>ngu-sw-manifest
'node_modules' is not recognized as an internal or external command,
operable program or batch file.
ngu-sw-manifest not populating the Routes
I am uisng this command in the following shell script to generate the manifest file.
#!/bin/bash
PATH=$PATH:$(npm bin)
set -x
# Production build
ng build --prod
# merge ngsw-manifest and copy to dist
./node_modules/.bin/ngu-sw-manifest --module src/app/app.routing.ts \
--out dist/ngsw-manifest.json
# Serve
cd dist
http-server
But My Generated manifest file is missing the routing configuration , is there any flag i need to append to it ?
ngu-app-shell --module fails
Hi,
first thanks for providing these tools.
They really help me to be more productive generating PWA-Applications.
Problem
I experience an error (see section Error) when I run
./node_modules/.bin/ngu-app-shell --module src/app/app.module.ts
Research
The error claims that the path to the files containing templates and styles cannot be resolved.
ng-app-shell
expects all .html
and .sass
files in the root directory of the app.
I put a console.log inside the FileLoader located in ng.js.
var FileLoader = (function () {
function FileLoader() {
}
FileLoader.prototype.get = function (url) {
console.log('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!', url)
return new Promise(function (resolve, reject) {
resolve(fs.readFileSync(url).toString());
});
};
return FileLoader;
}());
It turns out that only the filenames of the template and style files are passed to the FileLoader.
Maybe the caller for FileLoader.get has to pass the right url to the needed files
Workaround
To get ./node_modules/.bin/ngu-app-shell --module src/app/app.module.ts
to run I temporarly copied the templates and the styles to the root folder of the app
$ cp src/**/*.{html, sass} .
After that the precompile runs without any problems.
Error
'<path>\ng-pwa\book-grid.component.html' ; Zone: <root> ; Task: Promise.then ; Value: { Error: ENOENT: no such file or directory, open '<path>\ng-pwa\book-grid.component.html'
at Object.fs.openSync (fs.js:584:18)
at Object.fs.readFileSync (fs.js:491:33)
at <path>\ng-pwa\node_modules\ng-pwa-tools\lib\common\ng.js:25:24
at new ZoneAwarePromise (<path>\ng-pwa\node_modules\zone.js\dist\zone-node.js:821:29)
at FileLoader.get (<path>\ng-pwa\node_modules\ng-pwa-tools\lib\common\ng.js:24:16)
at DirectiveNormalizer._fetch (<path>\ng-pwa\node_modules\@angular\compiler\bundles\compiler.umd.js:13297:45)
at DirectiveNormalizer.normalizeTemplateAsync (<path>\ng-pwa\node_modules\@angular\compiler\bundles\compiler.umd.js:13352:21)
at DirectiveNormalizer.normalizeTemplate (<path>\ng-pwa\node_modules\@angular\compiler\@angular\compiler.es5.js:13319:39)
at CompileMetadataResolver._loadDirectiveMetadata (<path>\ng-pwa\node_modules\@angular\compiler\@angular\compiler.es5.js:14250:44)
at <path>\ng-pwa\node_modules\@angular\compiler\@angular\compiler.es5.js:14446:54
errno: -4058,
code: 'ENOENT',
syscall: 'open',
path: 'C:\\workbench\\trainings\\angular\\ng-pwa\\book-grid.component.html',
__zone_symbol__currentTask:
ZoneTask {
_zone:
Zone {
_properties: {},
_parent: null,
_name: '<root>',
_zoneDelegate: [Object] },
runCount: 0,
_zoneDelegates: null,
_state: 'notScheduled',
type: 'microTask',
source: 'Promise.then',
data: undefined,
scheduleFn: undefined,
cancelFn: null,
callback: [Function],
invoke: [Function] } } Error: ENOENT: no such file or directory, open '<path>\ng-pwa\book-grid.component.html'
at Object.fs.openSync (fs.js:584:18)
at Object.fs.readFileSync (fs.js:491:33)
at <path>\ng-pwa\node_modules\ng-pwa-tools\lib\common\ng.js:25:24
at new ZoneAwarePromise (<path>\ng-pwa\node_modules\zone.js\dist\zone-node.js:821:29)
at FileLoader.get (<path>\ng-pwa\node_modules\ng-pwa-tools\lib\common\ng.js:24:16)
at DirectiveNormalizer._fetch (<path>\ng-pwa\node_modules\@angular\compiler\bundles\compiler.umd.js:13297:45)
at DirectiveNormalizer.normalizeTemplateAsync (<path>\ng-pwa\node_modules\@angular\compiler\bundles\compiler.umd.js:13352:21)
at DirectiveNormalizer.normalizeTemplate (<path>\ng-pwa\node_modules\@angular\compiler\@angular\compiler.es5.js:13319:39)
at CompileMetadataResolver._loadDirectiveMetadata (<path>\ng-pwa\node_modules\@angular\compiler\@angular\compiler.es5.js:14250:44)
at <path>\ng-pwa\node_modules\@angular\compiler\@angular\compiler.es5.js:14446:54
{ Error: Uncaught (in promise): Error: ENOENT: no such file or directory, open '<path>\ng-pwa\book-grid.component.html'
Environment
- Windows 10
- Node 7.10.0
pwa branch is missing ;)
btw great talk, very inspiring.
Just today I introduced sw-precache in a project.
Now I heard about workbox.js and ng-pwa-tools I am very excited about.
ng-pwa-tools Repository
Hi,
the talk was very impressive. thanks for your hard work. However, I am to able to find ng-pwa-tools on Github, is there any public repository for that?
Also, Like other people have said, your code in Master branch is not as similar to what you have done in the talk, would you please update to keep it as a reference.
thanks
Unexpected token import
I get this error:
> [email protected] ngu-sw-manifest D:\projects\komed-health-web
> node ./node_modules/ng-pwa-tools/bin/ngu-sw-manifest.js --module src/app/app.module.ts --out dist/ngsw-manifest.json
D:\projects\komed-health-web\src\app\app.module.ts:2
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
^^^^^^
SyntaxError: Unexpected token import
When running node ./node_modules/ng-pwa-tools/bin/ngu-sw-manifest.js --module src/app/app.module.ts --out dist/ngsw-manifest.json
ngu-sw-manifest not caching all data
I'm building my own PWA using updated angular versions (4.3.1). I've gotten ngu-sw-manifest to work, it requires me to use the command ./node_modules/.bin/ngu-sw-manifest but it works. My issue is, it is only caching two items. It's missing all assets including images, favicon.ico, and some other items. Is there any common reason this could be happening? It also is not caching my manifest.json file.
Here is my package.json file
{
"name": "angular-test",
"version": "0.0.0",
"license": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "./run.sh",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@angular/animations": "^4.3.1",
"@angular/common": "^4.3.1",
"@angular/compiler": "^4.3.1",
"@angular/core": "^4.3.1",
"@angular/forms": "^4.3.1",
"@angular/http": "^4.3.1",
"@angular/platform-browser": "^4.3.1",
"@angular/platform-browser-dynamic": "^4.3.1",
"@angular/platform-server": "^4.3.1",
"@angular/router": "^4.3.1",
"@angular/service-worker": "^1.0.0-beta.16",
"@ngui/map": "^0.18.4",
"@types/googlemaps": "^3.26.16",
"core-js": "^2.4.1",
"ng-pwa-tools": "0.0.15",
"rxjs": "^5.1.0",
"zone.js": "^0.8.4"
},
"devDependencies": {
"@angular/cli": "1.2.1",
"@angular/compiler-cli": "^4.3.1",
"@angular/language-service": "^4.3.1",
"@types/jasmine": "2.5.45",
"@types/node": "~6.0.60",
"codelyzer": "~3.0.1",
"jasmine-core": "~2.6.2",
"jasmine-spec-reporter": "~4.1.0",
"karma": "~1.7.0",
"karma-chrome-launcher": "~2.1.1",
"karma-cli": "~1.0.1",
"karma-coverage-istanbul-reporter": "^1.2.1",
"karma-jasmine": "~1.1.0",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.1.2",
"ts-node": "~3.0.4",
"tslint": "~5.3.2",
"typescript": "~2.3.3"
}
}
This is the return I am getting after running the ngu-sw-manifest command
{
"static": {
"urls": {
"/3rdpartylicenses.txt": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
"/worker-basic.min.js": "2f12848c352bd6baf25f0f1d995351696ef518ff"
}
}
}
This is an outline of my file structure
dist
e2e
src
+-app
+-assets
+-environments
+-favicon.ico
+-index.html
+-main.ts
+-ngw-manifest.json
+-polyfills.ts
+-styles.css
+-test.ts
+-tsconfig.app.json
+-tsconfig.spec.json
+-typings.d.ts
+-tsconfig.json
+-tslint.json
karma.conf.js
node_modules
package-lock.json
package.json
protractor.conf.js
README.md
run.sh
The manifest file is also not responding the command. Any idea what Im doing wrong?
ngu-app-shell --module ReferenceError: document is not defined
Hello, guys :)
I am experiencing the next error when I run ./node_modules/.bin/ngu-app-shell --module src/app/app.module.ts
:
ReferenceError: document is not defined
at prepareQueryCSS (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:834:34)
at MatchMedia.exports.MatchMedia.MatchMedia._buildMQL (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:802:9)
at MatchMedia.exports.MatchMedia.MatchMedia.registerQuery (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:788:28)
at <path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:1063:31
at Array.forEach (native)
at MediaMonitor.exports.MediaMonitor.MediaMonitor._registerBreakpoints (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:1062:33)
at new MediaMonitor (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:995:14)
at MEDIA_MONITOR_PROVIDER_FACTORY (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:1525:29)
at _callFactory (<path>/packages/core/src/view/ng_module.ts:192:1)
at _createProviderInstance$1 (<path>/packages/core/src/view/ng_module.ts:124:1)
ERROR { ReferenceError: window is not defined
at MatchMedia.exports.MatchMedia.MatchMedia._buildMQL (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:803:27)
at MatchMedia.exports.MatchMedia.MatchMedia.registerQuery (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:788:28)
at <path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:1063:31
at Array.forEach (native)
at MediaMonitor.exports.MediaMonitor.MediaMonitor._registerBreakpoints (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:1062:33)
at new MediaMonitor (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:995:14)
at MEDIA_MONITOR_PROVIDER_FACTORY (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:1525:29)
at _callFactory (<path>/packages/core/src/view/ng_module.ts:192:1)
at _createProviderInstance$1 (<path>/packages/core/src/view/ng_module.ts:124:1)
at resolveNgModuleDep (<path>/node_modules/@angular/core/bundles/core.umd.js:9561:17)
__zone_symbol__currentTask:
ZoneTask {
_zone:
Zone {
_properties: [Object],
_parent: [Object],
_name: 'angular',
_zoneDelegate: [Object] },
runCount: 0,
_zoneDelegates: null,
_state: 'notScheduled',
type: 'microTask',
source: 'Promise.then',
data: undefined,
scheduleFn: undefined,
cancelFn: null,
callback: [Function],
invoke: [Function] } }
Unhandled Promise rejection: window is not defined ; Zone: <root> ; Task: Promise.then ; Value: { ReferenceError: window is not defined
at MatchMedia.exports.MatchMedia.MatchMedia._buildMQL (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:803:27)
at MatchMedia.exports.MatchMedia.MatchMedia.registerQuery (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:788:28)
at <path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:1063:31
at Array.forEach (native)
at MediaMonitor.exports.MediaMonitor.MediaMonitor._registerBreakpoints (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:1062:33)
at new MediaMonitor (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:995:14)
at MEDIA_MONITOR_PROVIDER_FACTORY (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:1525:29)
at _callFactory (<path>/packages/core/src/view/ng_module.ts:192:1)
at _createProviderInstance$1 (<path>/packages/core/src/view/ng_module.ts:124:1)
at resolveNgModuleDep (<path>/node_modules/@angular/core/bundles/core.umd.js:9561:17)
__zone_symbol__currentTask:
ZoneTask {
_zone:
Zone {
_properties: {},
_parent: null,
_name: '<root>',
_zoneDelegate: [Object] },
runCount: 0,
_zoneDelegates: null,
_state: 'notScheduled',
type: 'microTask',
source: 'Promise.then',
data: undefined,
scheduleFn: undefined,
cancelFn: null,
callback: [Function],
invoke: [Function] } } ReferenceError: window is not defined
at MatchMedia.exports.MatchMedia.MatchMedia._buildMQL (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:803:27)
at MatchMedia.exports.MatchMedia.MatchMedia.registerQuery (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:788:28)
at <path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:1063:31
at Array.forEach (native)
at MediaMonitor.exports.MediaMonitor.MediaMonitor._registerBreakpoints (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:1062:33)
at new MediaMonitor (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:995:14)
at MEDIA_MONITOR_PROVIDER_FACTORY (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:1525:29)
at _callFactory (<path>/packages/core/src/view/ng_module.ts:192:1)
at _createProviderInstance$1 (<path>/packages/core/src/view/ng_module.ts:124:1)
at resolveNgModuleDep (<path>/node_modules/@angular/core/bundles/core.umd.js:9561:17)
{ Error: Uncaught (in promise): ReferenceError: window is not defined
ReferenceError: window is not defined
at MatchMedia.exports.MatchMedia.MatchMedia._buildMQL (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:803:27)
at MatchMedia.exports.MatchMedia.MatchMedia.registerQuery (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:788:28)
at <path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:1063:31
at Array.forEach (native)
at MediaMonitor.exports.MediaMonitor.MediaMonitor._registerBreakpoints (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:1062:33)
at new MediaMonitor (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:995:14)
at MEDIA_MONITOR_PROVIDER_FACTORY (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:1525:29)
at _callFactory (<path>/packages/core/src/view/ng_module.ts:192:1)
at _createProviderInstance$1 (<path>/packages/core/src/view/ng_module.ts:124:1)
at resolveNgModuleDep (<path>/node_modules/@angular/core/bundles/core.umd.js:9561:17)
at resolvePromise (<path>/node_modules/zone.js/dist/zone-node.js:770:31)
at resolvePromise (<path>/node_modules/zone.js/dist/zone-node.js:741:17)
at <path>/node_modules/zone.js/dist/zone-node.js:818:17
at ZoneDelegate.invokeTask (<path>/node_modules/zone.js/dist/zone-node.js:424:31)
at Zone.runTask (<path>/node_modules/zone.js/dist/zone-node.js:191:47)
at drainMicroTaskQueue (<path>/node_modules/zone.js/dist/zone-node.js:584:35)
at process._tickDomainCallback (internal/process/next_tick.js:129:7)
at Function.Module.runMain (module.js:606:11)
at Object.<anonymous> (<path>/node_modules/ts-node/src/_bin.ts:177:12)
at Module._compile (module.js:570:32)
rejection:
{ ReferenceError: window is not defined
at MatchMedia.exports.MatchMedia.MatchMedia._buildMQL (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:803:27)
at MatchMedia.exports.MatchMedia.MatchMedia.registerQuery (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:788:28)
at <path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:1063:31
at Array.forEach (native)
at MediaMonitor.exports.MediaMonitor.MediaMonitor._registerBreakpoints (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:1062:33)
at new MediaMonitor (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:995:14)
at MEDIA_MONITOR_PROVIDER_FACTORY (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:1525:29)
at _callFactory (<path>/packages/core/src/view/ng_module.ts:192:1)
at _createProviderInstance$1 (<path>/packages/core/src/view/ng_module.ts:124:1)
at resolveNgModuleDep (<path>/node_modules/@angular/core/bundles/core.umd.js:9561:17)
__zone_symbol__currentTask:
ZoneTask {
_zone: [Object],
runCount: 0,
_zoneDelegates: null,
_state: 'notScheduled',
type: 'microTask',
source: 'Promise.then',
data: undefined,
scheduleFn: undefined,
cancelFn: null,
callback: [Function],
invoke: [Function] } },
promise:
ZoneAwarePromise {
__zone_symbol__state: 0,
__zone_symbol__value:
{ ReferenceError: window is not defined
at MatchMedia.exports.MatchMedia.MatchMedia._buildMQL (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:803:27)
at MatchMedia.exports.MatchMedia.MatchMedia.registerQuery (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:788:28)
at <path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:1063:31
at Array.forEach (native)
at MediaMonitor.exports.MediaMonitor.MediaMonitor._registerBreakpoints (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:1062:33)
at new MediaMonitor (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:995:14)
at MEDIA_MONITOR_PROVIDER_FACTORY (<path>/node_modules/@angular/flex-layout/bundles/flex-layout.umd.js:1525:29)
at _callFactory (<path>/packages/core/src/view/ng_module.ts:192:1)
at _createProviderInstance$1 (<path>/packages/core/src/view/ng_module.ts:124:1)
at resolveNgModuleDep (<path>/node_modules/@angular/core/bundles/core.umd.js:9561:17) __zone_symbol__currentTask: [Object] } },
zone:
Zone {
_properties: {},
_parent: null,
_name: '<root>',
_zoneDelegate:
ZoneDelegate {
_taskCounts: [Object],
zone: [Circular],
_parentDelegate: null,
_forkZS: null,
_forkDlgt: null,
_forkCurrZone: null,
_interceptZS: null,
_interceptDlgt: null,
_interceptCurrZone: null,
_invokeZS: null,
_invokeDlgt: null,
_invokeCurrZone: null,
_handleErrorZS: null,
_handleErrorDlgt: null,
_handleErrorCurrZone: null,
_scheduleTaskZS: null,
_scheduleTaskDlgt: null,
_scheduleTaskCurrZone: null,
_invokeTaskZS: null,
_invokeTaskDlgt: null,
_invokeTaskCurrZone: null,
_cancelTaskZS: null,
_cancelTaskDlgt: null,
_cancelTaskCurrZone: null,
_hasTaskZS: null,
_hasTaskDlgt: null,
_hasTaskDlgtOwner: null,
_hasTaskCurrZone: null } },
task:
ZoneTask {
_zone:
Zone {
_properties: {},
_parent: null,
_name: '<root>',
_zoneDelegate: [Object] },
runCount: 0,
_zoneDelegates: null,
_state: 'notScheduled',
type: 'microTask',
source: 'Promise.then',
data: undefined,
scheduleFn: undefined,
cancelFn: null,
callback: [Function],
invoke: [Function] } }
Environment: macOS 10.12.5, node 7.7.4
Thank you for these tools!
ngu-sw-manifest --module ... fails
$ ./node_modules/.bin/ngu-sw-manifest
works just fine.
$ ./node_modules/.bin/ngu-sw-manifest --module ./src/app/app.module.ts
throws a rather long error, but at the start is:
Unhandled Promise rejection: ENOENT: no such file or directory, open 'C:\Users\Nella\Documents\GitHub\io17\icon.component.html' ; Zone: <root> ; Task: Promise.then ; Value: { Error: ENOENT: no such file or directory, open 'C:\Users\Nella\Documents\GitHub\io17\icon.component.html'
No surprise: I'm on Windows and this looks like it has something to do with the path.
Can update run.sh
Can update the run.sh to run the demo smoothly with ng-pwa-tools?
help with a HN PWA application
Hi,
@alxhub I am creating a HN PWA using ng-pwa-tools, critical css, etc...and was wondering if you have any feedback to make it faster.
here is the page test.
https://www.webpagetest.org/result/170710_YC_e36dbf524b1105e6a05b9c7b90d20668/
I was thinking on concatenating the JS and use async and maybe use Firebase Functions to make the load faster.
What do you think?
Here is the page test from the app currently shown in HNPWA
https://www.webpagetest.org/result/170710_Y8_6b9326e0fc703ced3e7a21d3210a1375/
503 error on xhr request
hi,
any idea why i get :
Status Code:503 OK (from ServiceWorker)
for the xhr requests?
the dynamic group in the manifest is set correctly
thanks
unable to run `./run.sh` with error: `Module not found: Error: Can't resolve './$$_gendir/app/app.module.ngfactory'`
Great talk but disappointed when I was not able to run the app 😢 .
The full error I got after cloning and npm installing was:
ERROR in ./src/main.ts
Module not found: Error: Can't resolve './$$_gendir/app/app.module.ngfactory' in '/code/experiments/io17/src'
@ ./src/main.ts 4:0-74
@ multi ./src/main.ts
ERROR in ./src/$$_gendir async
Module not found: Error: Can't resolve '/code/experiments/io17/src/$$_gendir/app/home/home-route.module.ngfactory.ts' in '/code/experiments/io17/src/$$_gendir'
@ ./src/$$_gendir async
@ ./~/@angular/core/@angular/core.es5.js
@ ./src/main.ts
@ multi ./src/main.ts
ERROR in ./src/$$_gendir async
Module not found: Error: Can't resolve '/code/experiments/io17/src/$$_gendir/app/cart/cart-route.module.ngfactory.ts' in '/code/experiments/io17/src/$$_gendir'
@ ./src/$$_gendir async
@ ./~/@angular/core/@angular/core.es5.js
@ ./src/main.ts
@ multi ./src/main.tsERROR in ./src/main.ts
Module not found: Error: Can't resolve './$$_gendir/app/app.module.ngfactory' in '/code/experiments/io17/src'
@ ./src/main.ts 4:0-74
@ multi ./src/main.ts
ERROR in ./src/$$_gendir async
Module not found: Error: Can't resolve '/code/experiments/io17/src/$$_gendir/app/home/home-route.module.ngfactory.ts' in '/code/experiments/io17/src/$$_gendir'
@ ./src/$$_gendir async
@ ./~/@angular/core/@angular/core.es5.js
@ ./src/main.ts
@ multi ./src/main.ts
ERROR in ./src/$$_gendir async
Module not found: Error: Can't resolve '/code/experiments/io17/src/$$_gendir/app/cart/cart-route.module.ngfactory.ts' in '/code/experiments/io17/src/$$_gendir'
@ ./src/$$_gendir async
@ ./~/@angular/core/@angular/core.es5.js
@ ./src/main.ts
@ multi ./src/main.ts
I happened to find this while search for a fix.
I was able to continue on changing the build command:
# gave the error
ng build --prod
# no error
ng build --env=prod
Failed to run ngu-sw-manifest
I am using hammerjs in my project so there is this line in the app module file. import 'hammerjs';
any idea what i need to do? i thought hammerjs
is a pretty common library to include
./node_modules/.bin/ngu-sw-manifest --module src/app/app.module.ts
/Users/chaoranxie/dev/cwm/node_modules/hammerjs/hammer.js:2643
})(window, document, 'Hammer');
^
ReferenceError: window is not defined
at Object.<anonymous> (/Users/chaoranxie/dev/cwm/node_modules/hammerjs/hammer.js:2643:4)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/Users/chaoranxie/dev/cwm/src/app/app.module.ts:16:1)
at Module._compile (module.js:570:32)
Unexpected token export
I am having an error running ./node_modules/.bin/ngu-sw-manifest --module src/app/app.module.ts \
--out ../deploy/ngsw-manifest.json
My app.module.ts have dependency on StopmJs
content is
@NgModule({ declarations: [ AppComponent, UserListComponent, MessagesComponent ], imports: [ ConfigModule.forRoot({ provide: ConfigLoader, useFactory: configLoaderFactory, deps: [Http] }), BrowserModule, MaterialModule, HttpClientModule, HttpModule, FormsModule ], providers: [StompService, { provide: StompConfig, useFactory: stompConfigFactory, deps: [ConfigService] }], bootstrap: [AppComponent] })
import {StompService, StompConfig} from '@stomp/ng2-stompjs';
....\node_modules@stomp\ng2-stompjs\index.ts:2
export {StompService, StompState} from './src/stomp.service';
^^^^^^
SyntaxError: Unexpected token export
at Object.exports.runInThisContext (vm.js:76:16)
at Module._compile (module.js:542:28)
at Module._extensions..js (module.js:579:10)
at Object.require.extensions.(anonymous function) [as .ts] (...
s-node\src\index.ts:384:14)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object. (...\src\app\app.module.ts:9:1)
ngu-pw-manifest not recognized
PS C:\Users\Nella\Documents\GitHub\io17> ngu-pw-manifest
ngu-pw-manifest : The term 'ngu-pw-manifest' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a
path was included, verify that the path is correct and try again.
Is this supposed to be run in any kind of special way?
How to exclude sass files?
Hi, how do i exclude sass files in the ngsw-manifest.json
? It makes no sense that they are added there.
App runs but when http-server is down service-worker not kicking-in.
Not sure if this is an issue. I ran thru the video from Google I/O and got the example that runs with the application (checkbox) offline to load from the service worker. The network results shows (from serviceWorker) like the video. When I terminate the web server (live-server) and refresh I'm getting: "This site can’t be reached". In addition, it would be great if there was a reference to to test the push as that did not work. I'm not sure if I need to enable this on Firebase to enable. I reference to Firebase to enable push would be great. I tried to use the push enumerated from Chrome and that did nothing. I did generate a push generated code. Thanks!
ngu-sw-manifest --module not working
Hi @alxhub
I got this error any help
DELL@User MINGW32 ~/Desktop/Note/Triak (master)
$ ./node_modules/.bin/ngu-sw-manifest --module src/app/app.module.ts
C:\Users\DELL\Desktop\Note\Triak\node_modules\ts-node\src\index.ts:312
throw new TSError(formatDiagnostics(diagnosticList, cwd, ts, lineOffset))
^
TSError: ⨯ Unable to compile TypeScript
Cannot find type definition file for 'firebase'. (2688)
at getOutput (C:\Users\DELL\Desktop\Note\Triak\node_modules\ts-node\src\index.ts:312:17)
at C:\Users\DELL\Desktop\Note\Triak\node_modules\ts-node\src\index.ts:343:18
at Object.compile (C:\Users\DELL\Desktop\Note\Triak\node_modules\ts-node\src\index.ts:502:17)
at Module.m._compile (C:\Users\DELL\Desktop\Note\Triak\node_modules\ts-node\src\index.ts:406:44)
at Module._extensions..js (module.js:580:10)
at Object.require.extensions.(anonymous function) [as .ts] (C:\Users\DELL\Desktop\Note\Triak\node_modules\ts-node\src\index.ts:409:12)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
at Module.require (module.js:498:17)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.