Mik*_*ird 6 javascript systemjs angular-material2 angular
我按照角材料2的使用说明安装了@ angular/material.通过Atom,我更新了package.json,app.module,除了Getting Started说明之外,我更新了systemjs.config,如下所示:'@ angular/material':'node_modules/@ angular/material',
我收到这些错误:zone.js:1274 GET http:// localhost:3000/node_modules/@ angular/material / 404(Not Found)
(SystemJS)XHR错误(404 Not Found)loading http:// localhost:3000/node_modules/@ angular/material(...)
我相信我已经跟踪了这个问题,即许多@angular文件夹都有一个包含umd文件的bundle子文件夹,但@ angular/material文件夹没有bundle子文件夹.因此,'解包'功能找不到@ angular/material/material.umd.js
systemjs在我的舒适区之外,所以我不确定上述内容,但我无法用alpha.9-3的新文件结构解决404问题.这是相关代码(其他组件未显示).
的package.json
"@angular/material": "2.0.0-alpha.9-3",
Run Code Online (Sandbox Code Playgroud)
app.module
import { MaterialModule } from '@angular/material';
@NgModule({
imports: MaterialModule.forRoot(),
Run Code Online (Sandbox Code Playgroud)
systemjs.config
(function(global) {
var map = {
'app': 'app',
// angular bundles
'@angular': 'node_modules/@angular',
// other libraries
'angular2-in-memory-web-api': 'node_modules/angular2-in-memory-web-api',
'rxjs': 'node_modules/rxjs',
'@angular/material': 'node_modules/@angular/material',
};
var packages = {
'app': { main: 'main.js', defaultExtension: 'js' },
'rxjs':{ defaultExtension: 'js' },
'angular2-in-memory-web-api': { main: 'index.js', defaultExtension: 'js' },
};
var ngPackageNames = [
'common',
'compiler',
'core',
'forms',
'http',
'platform-browser',
'platform-browser-dynamic',
'platform-server',
'router',
'upgrade',
]; //adding 'material' to the array causes a different 404 error
function packIndex(pkgName) {
packages['@angular/'+pkgName] = { main: 'index.js', defaultExtension: 'js' };
}
function packUmd(pkgName) {
packages['@angular/'+pkgName] = { main: 'bundles/' + pkgName + '.umd.js', defaultExtension: 'js' };
}
var setPackageConfig = System.packageWithIndex ? packIndex : packUmd;
ngPackageNames.forEach(setPackageConfig);
var config = {
map: map,
packages: packages
};
System.config(config);
})(this); //end of function(global)
Run Code Online (Sandbox Code Playgroud)
我检查了我的文件夹/文件结构,@ angular/material/material.umd.js绝对存在.如何摆脱未找到的404?
yur*_*zui 10
从中删除以下内容 map
'@ angular/material':'node_modules/@ angular/material',
添加material到ngPackageNames数组:
var ngPackageNames = [
...
'material'
];
Run Code Online (Sandbox Code Playgroud)
然后用.替换你的packUmd功能
function packUmd(pkgName) {
packages['@angular/'+pkgName] = {
main: (pkgName !== 'material' ? 'bundles/' : '') + pkgName + '.umd.js',
defaultExtension: 'js'
};
}
Run Code Online (Sandbox Code Playgroud)
之后它应该工作
或者像angular2快速启动一样使用此配置:
(function (global) {
System.config({
paths: {
// paths serve as alias
'npm:': 'node_modules/'
},
// map tells the System loader where to look for things
map: {
// our app is within the app folder
app: 'app',
// angular bundles
'@angular/core': 'npm:@angular/core/bundles/core.umd.js',
'@angular/common': 'npm:@angular/common/bundles/common.umd.js',
'@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
'@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
'@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
'@angular/http': 'npm:@angular/http/bundles/http.umd.js',
'@angular/router': 'npm:@angular/router/bundles/router.umd.js',
'@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
'@angular/animations': 'npm:@angular/animations/bundles/animations.umd.js',
'@angular/animations/browser': 'npm:@angular/animations/bundles/animations-browser.umd.js',
'@angular/platform-browser/animations': 'npm:@angular/platform-browser/bundles/platform-browser-animations.umd.js',
'@angular/material': 'npm:@angular/material/bundles/material.umd.js'
// other libraries
'rxjs': 'npm:rxjs'
},
// packages tells the System loader how to load when no filename and/or no extension
packages: {
app: {
main: './main.js',
defaultExtension: 'js'
},
rxjs: {
defaultExtension: 'js'
}
}
});
})(this);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4946 次 |
| 最近记录: |