我无法导入ng2-bootstrap
layout.jade
html
head
title Angular 2 QuickStart
// 1. Load libraries
script(src="/node_modules/angular2/bundles/angular2-polyfills.js")
script(src="/node_modules/systemjs/dist/system.src.js")
//script(src="/node_modules/ng2-bootstrap/ng2-bootstrap.js")
script(src="/node_modules/rxjs/bundles/Rx.js")
script(src="/node_modules/angular2/bundles/angular2.dev.js")
// 2. Configure SystemJS
script.
System.config({
packages: {
app: {
//format: 'register',
//defaultExtension: 'js',
defaultJSExtensions: true
}
},
paths: {
'ng2-bootstrap/*': 'node_modules/ng2-bootstrap/*.js'
}
});
System.import('app/boot')
.then(null, console.error.bind(console));
// 3. Display the application
body
my-app Loading...
表达
app.use('/node_modules', express.static(__dirname + '/node_modules'));
app.component.ts
//import "ng2-bootstrap/ng2-bootstrap";
import {Component} from 'angular2/core';
import {Alert} from 'ng2-bootstrap/ng2-bootstrap';
import {firstComponent} from './component/first.component';
@Component({
//directives: [Alert],
directives: [firstComponent,Alert],
selector: 'my-app',
template: `
<h1>My First Angular 2 App</h1>
<h2> helllo</h2>
<first></first>
<alert type="info">ng2-bootstrap hello!</alert>
`
})
export class AppComponent { }
错误控制台
GET http://localhost:3000/node_modules/ng2-bootstrap/components/accordion/accordion 404 (Not Found)
Error: XHR error (404 Not Found) loading http://localhost:3000/node_modules/ng2-
还有更多的错误与re相同:无法导入组件?
答案 0 :(得分:7)
我自己也有同样的问题,发现此链接很有用:https://github.com/valor-software/ng2-bootstrap/issues/50#issuecomment-165448962
最相关代码的片段:
System.JS config:
System.config({
packages: {
"app": {
"defaultExtension": "js"
},
"node_modules/ng2-bootstrap": {
"defaultExtension": "js"
}
},
paths: {
"ng2-bootstrap": "node_modules/ng2-bootstrap"
}
});
然后您可以像这样导入它:
import { Progressbar } from "ng2-bootstrap";
@Component({
selector: "my-app",
directives: [
Progressbar
],
template: "<progressbar></progressbar>"
})
希望这对你有所帮助,就像对我一样。
答案 1 :(得分:7)
这对我有用。 在systemjs.config文件下:
map: {
'ng2-bootstrap': 'node_modules/ng2-bootstrap/bundles/ng2-bootstrap.umd.js',
'moment': 'node_modules/moment/moment.js'
}
我们需要提及这个时刻&#39;因为ng2-bootstrap正在导入时刻。
在app.modules中,只需执行以下操作:
import {DatepickerModule} from 'ng2-bootstrap';
还有以下内容:
@NgModule({
imports: [
....,
....,
DatepickerModule
],
declarations: [...],
providers: [...],
bootstrap: [AppComponent]
})
答案 2 :(得分:2)
我不认为目前的答案是令人满意的,因为它们确实可以解决症状并且无法解决根本问题。
我为解决这个问题做了什么:
System.config({
baseURL: '/node_modules',
"defaultJSExtensions": true,
map: {
app: '/app/'
}
paths: {
"moment": "moment/moment"
}
});
第1行:所以我设置node_modules
我的基本网址,因此我不必逐个包重写每个导入。
第2行:然后我告诉systemjs默认查找JS文件。
第3 - 5行:我将以app开头的所有内容映射到app目录。所以SystemJs不会尝试在/ node_modules文件夹中找到我自己的文件。
成品。
On Line 6 - 7当SystemJS试图直接从/ node_modules /加载momentjs时,必须完成一个'bugfix',所以我将它设置为自己的目录。奇怪..
答案 3 :(得分:1)
我正在使用最新版本的angular-cli 2.4.7(webpack),并且能够让它发挥作用。
在角应用
中运行此功能npm install ng2-bootstrap bootstrap moment --save
打开以下文件并按列出的方式添加
在样式数组中插入一个新条目
# angular-cli.json
"styles": [
"styles.css",
"../node_modules/bootstrap/dist/css/bootstrap.min.css"
]
导入所需的模块
# src/app/app.module.ts
...
import { DatepickerModule } from 'ng2-bootstrap';
...
@NgModule({
....
,
imports: [
DatepickerModule.forRoot(),
...
]
...})
你很高兴去!
答案 4 :(得分:0)
**>-------- NG2BOOTSTRAP--------->**
使用这些命令将这些依赖项添加到package.json
将System.config.js修改为以下代码,因为此地图告诉System loader在哪里查找代码。
var map = {
'app': 'app', // 'dist',
'@angular': 'node_modules/@angular',
moment: 'node_modules/moment/moment.js',
'ng2-bootstrap': 'node_modules/ng2-bootstrap',
};
var packages = {
'app': { main: 'main.js', defaultExtension: 'js' },
'ng2-bootstrap': {defaultExtension: 'js' }
};
将Bootstrap添加到index.html
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
App.module.ts 从&#39; ng2-bootstrap / ng2-bootstrap&#39;中导入{Ng2BootstrapModule}; 并且,将Ng2BootstrapModule添加到@NgModule的导入。
然后,U很适合ng2Bootstrap。
答案 5 :(得分:0)
在systemjs.config.js
packages变量中,添加以下内容以解决问题
'ng2-bootstrap':
{
format: 'cjs', main: 'bundles/ng2-bootstrap.umd.js', defaultExtension: 'js'
}
答案 6 :(得分:0)
使用以下内容更新systemjs.config.js包变量,错误将消失 &#39; ng2-bootstrap&#39;:{format:&#39; cjs&#39;,main:&#39; bundles / ng2-bootstrap.umd.js&#39;,defaultExtension:&#39; js&# 39; },//和这个