Javascript Angular 5字体脚本-包括ES2015代码
我正在安圭拉5应用程序,我必须包括图书馆没有可用的打字。我按照angular cli中概述的步骤介绍了如何包括第三方库,特别是标题“如果库在@types/上没有可用的打字,您仍然可以通过手动添加打字来使用它:” 这就是我的代码在使用后的样子- src/typings.d.tsJavascript Angular 5字体脚本-包括ES2015代码,javascript,angular,typescript,angular-cli,Javascript,Angular,Typescript,Angular Cli,我正在安圭拉5应用程序,我必须包括图书馆没有可用的打字。我按照angular cli中概述的步骤介绍了如何包括第三方库,特别是标题“如果库在@types/上没有可用的打字,您仍然可以通过手动添加打字来使用它:” 这就是我的代码在使用后的样子- src/typings.d.ts /* SystemJS module definition */ declare var module: NodeModule; declare module 'dmn-js'; interface NodeModule
/* SystemJS module definition */
declare var module: NodeModule;
declare module 'dmn-js';
interface NodeModule {
id: string;
}
src/app/app.component.ts
import { Component, OnInit } from '@angular/core';
import {HttpClient} from '@angular/common/http';
import * as DmnJS from 'dmn-js';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
title = 'DMN';
constructor(private http: HttpClient){
}
ngOnInit(): void {
var viewer = new DmnJS ({ container: 'body' });
var dmnXML; //DMN 1.1 xml
viewer.importXML(dmnXML, this.handleError);
}
handleError(err: any) {
if (err) {
console.warn('Ups, error: ', err);
}else {
console.log('rendered');
}
}
load(): void {
const url = '/assets/dish-decision.dmn';
this.http.get(url, {
headers: {observe: 'response'}, responseType: 'text'
}).subscribe(
(x: any) => {
console.log('Fetched XML, now importing: ', x);
//this.modeler.importXML(x, this.handleError);
},
this.handleError
);
}
save(): void {
//this.modeler.saveXML((err: any, xml: any) => console.log('Result of saving XML: ', err, xml));
}
}
constructor(private http: HttpClient ){
this.http.get('../assets/val.xml',{responseType: 'text'}).subscribe(x=>{
var xml= x; // my DMN 1.1 xml
//var myContainer = document.getElementsByClassName('canvas');
var viewer = new Viewer({
container: '.canvas'
});
viewer.importXML(xml, function(err) {
console.log('*********************');
if (err) {
console.log('error rendering', err);
} else {
viewer
.getActiveViewer()
.get('canvas')
.zoom('fit-viewport');
}
});
});
<link rel="stylesheet" href="https://unpkg.com/dmn-js@4.3.0/dist/assets/dmn-js-drd.css">
<link rel="stylesheet" href="https://unpkg.com/dmn-js@4.3.0/dist/assets/dmn-js-decision-table.css">
<link rel="stylesheet" href="https://unpkg.com/dmn-js@4.3.0/dist/assets/dmn-js-literal-expression.css">
<link rel="stylesheet" href="https://unpkg.com/dmn-js@4.3.0/dist/assets/dmn-font/css/dmn.css">
现在,当我编译代码时,我得到以下错误。我不确定需要做什么来解决这个问题,因为我遵循了所有步骤
ERROR in ./node_modules/dmn-js-drd/lib/Viewer.js
Module parse failed: Unexpected token (175:4)
You may need an appropriate loader to handle this file type.
| additionalModules,
| canvas,
| ...additionalOptions
| } = options;
|
ERROR in ./node_modules/dmn-js-shared/lib/base/Manager.js
Module parse failed: Unexpected token (292:16)
You may need an appropriate loader to handle this file type.
| }
|
| _viewsChanged = () => {
| this._emit('views.changed', {
| views: this._views,
ERROR in ./node_modules/dmn-js-decision-table/lib/Viewer.js
Module parse failed: Unexpected token (75:6)
You may need an appropriate loader to handle this file type.
| modules,
| additionalModules,
| ...config
| } = options;
|
ERROR in ./node_modules/dmn-js-literal-expression/lib/Viewer.js
Module parse failed: Unexpected token (77:6)
You may need an appropriate loader to handle this file type.
| modules,
| additionalModules,
| ...config
| } = options;
|
webpack: Failed to compile.
Angular cli wiki告诉您现在如何添加,正如您已经遵循的那样
您可以访问第三方库,但这里dmn js需要插件
它可以支持(扩展运算符和其他内部
变换等)。dmn js使用巴贝尔[如果你观察到它是
在dmn*]的每个文件夹中都有.babelrc文件
为了支持dmn js,我们需要配置webpack。
花了相当长的时间后,结果如下:
在您的.Component.ts中
import { Component, OnInit } from '@angular/core';
import {HttpClient} from '@angular/common/http';
import * as DmnJS from 'dmn-js';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
title = 'DMN';
constructor(private http: HttpClient){
}
ngOnInit(): void {
var viewer = new DmnJS ({ container: 'body' });
var dmnXML; //DMN 1.1 xml
viewer.importXML(dmnXML, this.handleError);
}
handleError(err: any) {
if (err) {
console.warn('Ups, error: ', err);
}else {
console.log('rendered');
}
}
load(): void {
const url = '/assets/dish-decision.dmn';
this.http.get(url, {
headers: {observe: 'response'}, responseType: 'text'
}).subscribe(
(x: any) => {
console.log('Fetched XML, now importing: ', x);
//this.modeler.importXML(x, this.handleError);
},
this.handleError
);
}
save(): void {
//this.modeler.saveXML((err: any, xml: any) => console.log('Result of saving XML: ', err, xml));
}
}
constructor(private http: HttpClient ){
this.http.get('../assets/val.xml',{responseType: 'text'}).subscribe(x=>{
var xml= x; // my DMN 1.1 xml
//var myContainer = document.getElementsByClassName('canvas');
var viewer = new Viewer({
container: '.canvas'
});
viewer.importXML(xml, function(err) {
console.log('*********************');
if (err) {
console.log('error rendering', err);
} else {
viewer
.getActiveViewer()
.get('canvas')
.zoom('fit-viewport');
}
});
});
<link rel="stylesheet" href="https://unpkg.com/dmn-js@4.3.0/dist/assets/dmn-js-drd.css">
<link rel="stylesheet" href="https://unpkg.com/dmn-js@4.3.0/dist/assets/dmn-js-decision-table.css">
<link rel="stylesheet" href="https://unpkg.com/dmn-js@4.3.0/dist/assets/dmn-js-literal-expression.css">
<link rel="stylesheet" href="https://unpkg.com/dmn-js@4.3.0/dist/assets/dmn-font/css/dmn.css">
在.Component.html中
<body >
<div class="canvas" style="width:100vh;height:100vh ;padding-left:100px"></div>
</body>
在index.html中添加样式表链接
import { Component, OnInit } from '@angular/core';
import {HttpClient} from '@angular/common/http';
import * as DmnJS from 'dmn-js';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
title = 'DMN';
constructor(private http: HttpClient){
}
ngOnInit(): void {
var viewer = new DmnJS ({ container: 'body' });
var dmnXML; //DMN 1.1 xml
viewer.importXML(dmnXML, this.handleError);
}
handleError(err: any) {
if (err) {
console.warn('Ups, error: ', err);
}else {
console.log('rendered');
}
}
load(): void {
const url = '/assets/dish-decision.dmn';
this.http.get(url, {
headers: {observe: 'response'}, responseType: 'text'
}).subscribe(
(x: any) => {
console.log('Fetched XML, now importing: ', x);
//this.modeler.importXML(x, this.handleError);
},
this.handleError
);
}
save(): void {
//this.modeler.saveXML((err: any, xml: any) => console.log('Result of saving XML: ', err, xml));
}
}
constructor(private http: HttpClient ){
this.http.get('../assets/val.xml',{responseType: 'text'}).subscribe(x=>{
var xml= x; // my DMN 1.1 xml
//var myContainer = document.getElementsByClassName('canvas');
var viewer = new Viewer({
container: '.canvas'
});
viewer.importXML(xml, function(err) {
console.log('*********************');
if (err) {
console.log('error rendering', err);
} else {
viewer
.getActiveViewer()
.get('canvas')
.zoom('fit-viewport');
}
});
});
<link rel="stylesheet" href="https://unpkg.com/dmn-js@4.3.0/dist/assets/dmn-js-drd.css">
<link rel="stylesheet" href="https://unpkg.com/dmn-js@4.3.0/dist/assets/dmn-js-decision-table.css">
<link rel="stylesheet" href="https://unpkg.com/dmn-js@4.3.0/dist/assets/dmn-js-literal-expression.css">
<link rel="stylesheet" href="https://unpkg.com/dmn-js@4.3.0/dist/assets/dmn-font/css/dmn.css">
Typings.d.ts->您已经添加了
安装依赖项:
/* SystemJS module definition */
declare var module: NodeModule;
declare module 'dmn-js';
interface NodeModule {
id: string;
}
npm i——保存开发巴贝尔插件地狱
巴贝尔插件变换对象静止扩散
babel插件转换类属性
巴贝尔插件转换对象分配
希望这有帮助
参考文献1:
参考文献2:
参考3:看起来您正在使用webpack,但没有告诉webpack加载
.js
文件。问题在于加载web包。也许这个链接可以帮助我使用angular cli创建项目。我没有看到由angular cli创建的webpack.config.js。wiki不会让webpack单独知道.js文件。我使用npm install dmn js来安装库。使用angular.cli时,将隐藏网页设置。因此,您可以使用ng eject(但在它之前读取)或使用angular-cli.json节脚本。您可以在其中包含javascrpt文件。您应该向库所有者解决此问题。将es6代码作为库提供不是最佳做法,因为大多数工具/设置都将节点_模块排除在编译之外,angular cli就是其中之一。为了供您参考,创建了git repo:!!!这太棒了非常感谢您花时间解决此问题。它现在正在工作。我不得不下载额外的npm依赖项以使其正常工作-npm安装-保存dev babel loader babel-preset-stage-2 babel-preset-es2015谢谢你!!!,遇到了巴别塔,还没用过呢!!!您可以将此添加到dnm js论坛:)我实际上刚刚在那里发布了您的解决方案的参考:-)