对不起,这个问题已经被问了很多次。我已经尝试了很多努力,试图在过去的几天里得到这个工作,我觉得我已经错过了一些让这不可能的小事。无法在Angular2中导入/引用第三方库
背景: 使用.NET Core作为Angular2前端的后端和webpack 2.2.1来部署js/css。 (我用下面的模板BTW,http://blog.stevensanderson.com/2016/10/04/angular2-template-for-visual-studio/)
我想用下面引用alertifyjs为打字稿服务(notifications.service.ts):
import { Injectable } from '@angular/core';
//import * as alertify from 'alertifyjs';
declare var alertify: any;
//var alertify = require('alertify.js');
@Injectable()
export class NotificationService {
private _notifier: any = alertify;
constructor() {
}
所以我现在的问题是,我该怎么办:
检查alertifyjs实际上是被正确地呈现过的WebPack(我打过电话alertify通过对开发工具的控制台,它不工作) - 这是不是必需的,但其良好的学习
获取alertify通过的WebPack正常工作
- 参考,并Angular2使用alertify
感谢提前任何帮助,我超级超级抱歉,如果这已经在计算器上,我回答的地方错过了!
而且,我的WebPack配置如下:
var isDevBuild = process.argv.indexOf('--env.prod') < 0;
var path = require('path');
var webpack = require('webpack');
var ExtractTextPlugin = require('extract-text-webpack-plugin');
var extractCSS = new ExtractTextPlugin('vendor.css');
module.exports = {
resolve: {
extensions: [ '', '.js' ]
},
resolveLoader: {
debug: true,
},
module: {
loaders: [
{ test: /\.(png|woff|woff2|eot|ttf|svg)(\?|$)/, loader: 'url-loader?limit=100000' },
{ test: /\.css(\?|$)/, loader: extractCSS.extract(['css']) }
]
},
entry: {
vendor: [
'@angular/common',
'@angular/compiler',
'@angular/core',
'@angular/http',
'@angular/platform-browser',
'@angular/platform-browser-dynamic',
'@angular/router',
'@angular/platform-server',
'angular2-universal',
'angular2-universal-polyfills',
'bootstrap',
'bootstrap/dist/css/bootstrap.css',
'es6-shim',
'es6-promise',
'jquery',
'zone.js',
'alertifyjs',
//'systemjs',
'font-awesome/css/font-awesome.css'
]
},
output: {
path: path.join(__dirname, 'wwwroot', 'dist'),
filename: '[name].js',
library: '[name]_[hash]',
},
plugins: [
extractCSS,
new webpack.ProvidePlugin({ $: 'jquery', jQuery: 'jquery', alertify: 'alertifyjs' }), // Maps these identifiers to the jQuery package (because Bootstrap expects it to be a global variable)
new webpack.optimize.OccurenceOrderPlugin(),
new webpack.DllPlugin({
path: path.join(__dirname, 'wwwroot', 'dist', '[name]-manifest.json'),
name: '[name]_[hash]'
})
].concat(isDevBuild ? [ ] : [
new webpack.optimize.UglifyJsPlugin({ compress: { warnings: false } })
])
};
哇感谢全面的答案取代它,我将在现在给了一枪 – WillHua
该死的你是上帝派的。非常努力地完成这项工作,并且完美地将它击中头部。 – WillHua
很高兴能够帮助:) –