在angular2 rc5项目中导入angular2-cookie
Importing angular2-cookie in angular2 rc5 project
我正在尝试在angular2 rc5项目中导入angular2 cookie模块,我刚刚开始。
使用npm
安装模块npm install angular2-cookie
编辑angular-cli-build.js文件:
module.exports = function(defaults) {
return new Angular2App(defaults, {
vendorNpmFiles: [
'systemjs/dist/system-polyfills.js',
'systemjs/dist/system.src.js',
'zone.js/dist/**/*.+(js|js.map)',
'es6-shim/es6-shim.js',
'reflect-metadata/**/*.+(ts|js|js.map)',
'rxjs/**/*.+(js|js.map)',
'@angular/**/*.+(js|js.map)',
'materialize-css/bin/materialize.css',
'materialize-css/bin/materialize.js',
'socket.io-client/socket.io.js',
'angular2-cookie/**/*.+(ts|js|js.map)'
]
});
};
run ng build
angular2-cookie文件夹创建在我的dist/vendor文件夹
我system-config。t看起来像这样
"use strict";
// SystemJS configuration file, see links for more information
// https://github.com/systemjs/systemjs
// https://github.com/systemjs/systemjs/blob/master/docs/config-api.md
/***********************************************************************************************
* User Configuration.
**********************************************************************************************/
/** Map relative paths to URLs. */
const map: any = {
};
/** User packages configuration. */
const packages: any = {
};
////////////////////////////////////////////////////////////////////////////////////////////////
/***********************************************************************************************
* Everything underneath this line is managed by the CLI.
**********************************************************************************************/
const barrels: string[] = [
// Angular specific barrels.
'@angular/core',
'@angular/common',
'@angular/compiler',
'@angular/forms',
'@angular/http',
'@angular/router',
'@angular/platform-browser',
'@angular/platform-browser-dynamic',
// Thirdparty barrels.
'rxjs',
// App specific barrels.
'app',
'app/shared',
/** @cli-barrel */
];
const cliSystemConfigPackages: any = {};
barrels.forEach((barrelName: string) => {
cliSystemConfigPackages[barrelName] = { main: 'index' };
});
/** Type declaration for ambient System. */
declare var System: any;
// Apply the CLI SystemJS configuration.
System.config({
map: {
'@angular': 'vendor/@angular',
'rxjs': 'vendor/rxjs',
'main': 'main.js',
"socket.io-client": "node_modules/socket.io-client/socket.io.js",
"angular2-cookie": 'vendor/angular2-cookie'
},
packages: cliSystemConfigPackages,
"socket.io-client": {"defaultExtension": "js"},
'angular2-cookie' : { defaultExtension: 'js',main: 'core.js'}
});
// Apply the user's configuration.
System.config({ map, packages });
我设法导入它并在我的组件文件中添加一些代码
import {CookieService} from 'angular2-cookie/core';
但是由于某些原因,当我尝试ng服务应用程序时,它无法加载,并出现以下错误
zone.js:101 GET http://localhost:4200/vendor/angular2-cookie/core 404 (Not Found)scheduleTask @ zone.js:101ZoneDelegate.scheduleTask @ zone.js:336Zone.scheduleMacroTask @ zone.js:273(anonymous function) @ zone.js:122send @ VM308:3fetchTextFromURL @ system.src.js:1154(anonymous function) @ system.src.js:1735ZoneAwarePromise @ zone.js:584(anonymous function) @ system.src.js:1734(anonymous function) @ system.src.js:2759(anonymous function) @ system.src.js:3333(anonymous function) @ system.src.js:3600(anonymous function) @ system.src.js:3985(anonymous function) @ system.src.js:4448(anonymous function) @ system.src.js:4700(anonymous function) @ system.src.js:406ZoneDelegate.invoke @ zone.js:323Zone.run @ zone.js:216(anonymous function) @ zone.js:571ZoneDelegate.invokeTask @ zone.js:356Zone.runTask @ zone.js:256drainMicroTaskQueue @ zone.js:474ZoneTask.invoke @ zone.js:426
2016-09-01 10:48:02.373 zone.js:461 Unhandled Promise rejection: Error: XHR error (404 Not Found) loading http://localhost:4200/vendor/angular2-cookie/core
at XMLHttpRequest.wrapFn [as _onreadystatechange] (http://localhost:4200/vendor/zone.js/dist/zone.js:769:30)
at ZoneDelegate.invokeTask (http://localhost:4200/vendor/zone.js/dist/zone.js:356:38)
at Zone.runTask (http://localhost:4200/vendor/zone.js/dist/zone.js:256:48)
at XMLHttpRequest.ZoneTask.invoke (http://localhost:4200/vendor/zone.js/dist/zone.js:423:34)
Error loading http://localhost:4200/vendor/angular2-cookie/core as "angular2-cookie/core" from http://localhost:4200/app/app.component.js ; Zone: <root> ; Task: Promise.then ; Value: Error: Error: XHR error (404 Not Found) loading http://localhost:4200/vendor/angular2-cookie/core(…)consoleError @ zone.js:461_loop_1 @ zone.js:490drainMicroTaskQueue @ zone.js:494ZoneTask.invoke @ zone.js:426
2016-09-01 10:48:02.378 zone.js:463 Error: Uncaught (in promise): Error: Error: XHR error (404 Not Found) loading http://localhost:4200/vendor/angular2-cookie/core(…)
看起来angular2 cookie文件夹不可访问(或者不能正常服务),但是找不到原因。
我的包。Json依赖项:
"dependencies": {
"@angular/common": "2.0.0-rc.5",
"@angular/compiler": "2.0.0-rc.5",
"@angular/core": "2.0.0-rc.5",
"@angular/forms": "0.3.0",
"@angular/http": "2.0.0-rc.5",
"@angular/platform-browser": "2.0.0-rc.5",
"@angular/platform-browser-dynamic": "2.0.0-rc.5",
"@angular/router": "3.0.0-rc.1",
"angular2-cookie": "^1.2.2",
"async": "^2.0.1",
"clone": "^1.0.2",
"es6-shim": "0.35.1",
"express": "^4.14.0",
"materialize-css": "^0.97.7",
"moment": "^2.14.1",
"redis": "^2.6.2",
"reflect-metadata": "0.1.3",
"rethinkdb": "^2.3.2",
"rxjs": "^5.0.0-beta.6",
"socket.io": "^1.4.8",
"socket.io-client": "^1.4.8",
"systemjs": "0.19.37",
"typings": "^1.3.1",
"zone.js": "0.6.17"
},
"devDependencies": {
"angular-cli": "1.0.0-beta.10",
"codelyzer": "0.0.20",
"ember-cli-inject-live-reload": "1.4.0",
"jasmine-core": "2.4.1",
"jasmine-spec-reporter": "2.5.0",
"karma": "0.13.22",
"karma-chrome-launcher": "0.2.3",
"karma-jasmine": "0.3.8",
"protractor": "3.3.0",
"ts-node": "0.5.5",
"tslint": "3.11.0",
"typescript": "1.8.10",
"typings": "1.3.1"
}
}
您需要在这些对象中设置map和包。
/** Map relative paths to URLs. */
const map: any = {
'angular2-cookie': 'vendor/angular2-cookie'
};
/** User packages configuration. */
const packages: any = {
'angular2-cookie': {main: 'core.js', defaultExtension: 'js'},
};
请注意,目前angular2-cookie
不能与rc6一起工作,但新版本正在开发中。我想今天或明天会发布。
您在配置文件"angular2-cookie": 'vendor/angular2-cookie'
中做了映射,所以你需要调用import {CookieService} from 'angular2-cookie';
应该工作,否则检查这个文件夹/vendor/angular2-cookie/
,并检查是否有一个core.js
文件,你在系统中设置为这个模块的默认值。config 'angular2-cookie' : { defaultExtension: 'js',main: 'core.js'}
.
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 如何在Angular2中使用jQuery插件
- 不能从angular2中的子组件指定父组件中的数组
- Angular2将组件方法导入到另一个组件中
- 将所有angular2捆绑包包含在index.html中会使导入从内存获取数据,而不是再次从服务器请求数据
- 使用typescript访问导入的服务时发生Angular2错误
- 在 Angular2 中设置基本导入目录
- TS2307:在 TypeScript 上导入 Angular2 时找不到模块“angular2/core”
- 从NPM(Googleapis)导入Angular2模块
- 如何在 Angular2 中导入 socket.io 客户端
- 如何用Angular2+WebPack导入远程AMD模块
- 导入angular2应用并传递参数
- 在绑定的Angular2应用中,SystemJS导入会静默失败
- 为什么我不能把enum导入我的angular2组件?
- Angular2无法用javascript导入FormsModule
- Angular2, typescript peer无效,不能导入模块
- Angular2 RC5导入第三方JS库:摊牌
- 在angular2 rc5项目中导入angular2-cookie
- 正在将导入包别名从angular2更改为@angular
- 在Express提供服务的Angular2中导入ES6模块