我尝试打包https://www.npmjs.com/package/@jscad/dxf-deserializer库并在浏览器中使用。 来自节点的Uage看起来像
const deSerializer = require('@jscad/dxf-deserializer')
const rawData = fs.readFileSync('PATH/TO/file.dxf')
const jscadCode = deSerializer(rawData)
在链接bundle脚本之后,我现在应该如何使用它呢?
我试过了
let objs = deserialize(fileText,'square10x10',{output: 'csg'})
然后得到了
ReferenceError: deserialize is not defined
有js测试文件与节点工作良好
const fs = require('fs')
const path = require('path')
const test = require('ava')
const { CSG, CAG } = require('@jscad/csg')
const { nearlyEqual } = require( '../../../test/helpers/nearlyEqual' )
const { deserialize } = require( '../index' )
const samples = path.resolve('../../node_modules/@jscad/sample-files')
//
// Test suite for DXF deserialization (import)
//
test('ASCII DXF from Bourke 3D Entities to Object Conversion', t => {
//const dxfPath = path.resolve(__dirname, '../../../../sample-files/dxf/bourke/3d-entities.dxf')
const dxfPath = path.resolve(samples, 'dxf/bourke/3d-entities.dxf')
t.deepEqual(true, fs.existsSync(dxfPath))
let dxf = fs.readFileSync(dxfPath, 'UTF8')
let objs = deserialize(dxf,'aaa',{output: 'objects'})
// expect one layer, containing 2 objects (CSG, and Line3D)
t.true(Array.isArray(objs))
t.is(objs.length,2)
})
尝试添加
node: {
fs: "empty"
}
浏览器中未定义FS
模块。 也许这就是停止deserialize
的原因。 试试看。