ng-docs.github.io
ng-docs.github.io copied to clipboard
如何引用 Sylvester 这种类库?
我需要使用 Sylvester 库来进行一些三维几何运算,但是该库的结构跟我之前常用的其他库有些区别。相关项目 sylvester 很久没维护了,在网上也没有找到有用的示例。
我的操作步骤:
-
引用
sylvester
及@types/sylvester
> npm i sylvester > npm i @types/sylvester
-
在代码中进行一些计算
const lineAB = Line.create( [pointA.x, pointA.y, pointA.z], [pointB.x, pointB.y, pointB.z] ); // 其他逻辑
-
效果:
- ✔️ 引用时有智能提示
- ✔️ 成功生成
- ⭕ 运行时报错:
Cannot find name 'Line'.
测试项目: https://stackblitz.com/edit/angular-ivy-qu3xh5
如果你想用全局引入js(相当于在head上直接写url那种),不是import这方式的话,在angular.json中的script字段引入相关js就ok了 如果想使用import这种方式,一般有三种 import * as LIne from 'sylvester' import sylvester from 'sylvester' import {sylvester} from 'sylvester' 我不知道这个库是什么格式的,所以你挨个试下,本想在stackblitz改下,结果给我提示少依赖库.....
额搞好了,你看下是不是想要的把链接
@wszgrcy 非常感谢! 我在 StackBiltz 能测通计算逻辑了。
但是目前还有两个疑问:
- 我添加了计算逻辑后,StackBiltz 中似乎会执行两次,也就是说有两次输出。
- 虽然在 StackBiltz 测通了,但是
import { Line } from "sylvester";
的报错始终还在,而且ng test
ng build
ng serve
都无法成功执行,我需要做什么来忽略这个错误吗?
ng serve
时报错:
ERROR in ./node_modules/sylvester/lib/node-sylvester/matrix.js
Module not found: Error: Can't resolve 'fs' in '.\path-to-app\node_modules\sylvester\lib\node-sylvester'
@wszgrcy 非常感谢! 我在 StackBiltz 能测通计算逻辑了。
但是目前还有两个疑问:
- 我添加了计算逻辑后,StackBiltz 中似乎会执行两次,也就是说有两次输出。
- 虽然在 StackBiltz 测通了,但是
import { Line } from "sylvester";
的报错始终还在,而且ng test
ng build
ng serve
都无法成功执行,我需要做什么来忽略这个错误吗?
ng serve
时报错:ERROR in ./node_modules/sylvester/lib/node-sylvester/matrix.js Module not found: Error: Can't resolve 'fs' in '.\path-to-app\node_modules\sylvester\lib\node-sylvester'
那就采用第一种引用,这几种都是通用的 import * as sylvester from "sylvester"; sylvester.Line 另外看了下你这块库是基于node实现的,能如果上面的引用还是无效的话,估计跑不在浏览器上
那就采用第一种引用,这几种都是通用的 import * as sylvester from "sylvester"; sylvester.Line 另外看了下你这块库是基于node实现的,能如果上面的引用还是无效的话,估计跑不在浏览器上
那估计就是这个问题了,看来我得参考它的源码自己实现这个逻辑。
那就采用第一种引用,这几种都是通用的 import * as sylvester from "sylvester"; sylvester.Line 另外看了下你这块库是基于node实现的,能如果上面的引用还是无效的话,估计跑不在浏览器上
那估计就是这个问题了,看来我得参考它的源码自己实现这个逻辑。
上面的哪个报错是引用了fs也就是node的一个库,理论上来说fs是用来处理文件的(本地操作文件),如果你不处理文件,应该用不上这个,可以去源码中把这个屏蔽掉,当然,如果这个库一定要操作,那么肯定没用了