Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Scientific Software
vEXP
Commits
82eb0f84
Commit
82eb0f84
authored
Jun 10, 2022
by
Sci Test
Browse files
Cameo v2
parent
3f77a0f3
Changes
3
Hide whitespace changes
Inline
Side-by-side
addons/cameo-spy-addon.cc
View file @
82eb0f84
...
...
@@ -6,7 +6,7 @@
#include
<sstream>
#include
<functional>
#include
<string>
#include
<cameo/cameo.h>
#include
<cameo/
api/
cameo.h>
using
namespace
std
;
using
namespace
std
::
placeholders
;
...
...
@@ -29,8 +29,8 @@ using v8::Persistent;
unique_ptr
<
cameo
::
Server
>
server
;
unique_ptr
<
cameo
::
Server
>
remoteServer
;
unique_ptr
<
cameo
::
a
pp
lication
::
Instance
>
vexpSpy
;
unique_ptr
<
cameo
::
application
::
Requester
>
requester
;
unique_ptr
<
cameo
::
A
pp
>
vexpSpy
;
unique_ptr
<
cameo
::
coms
::
Requester
>
requester
;
Isolate
*
v8Isolate
;
string
nomadEndpoint
;
...
...
@@ -55,24 +55,25 @@ void Init(const FunctionCallbackInfo<Value>& args) {
string
nomadEndpoint
(
*
param2
);
// Init the app if it is not already done.
if
(
cameo
::
application
::
This
::
getId
()
==
-
1
)
{
if
(
cameo
::
This
::
getId
()
==
-
1
)
{
cameo
::
application
::
This
::
init
(
"vEXP"
,
localEndpoint
);
cameo
::
This
::
init
(
"vEXP"
,
localEndpoint
);
cout
<<
"initialised cameo"
<<
endl
;
}
// Init nomad3d positions.
server
.
reset
(
new
cameo
::
Server
(
cameo
::
application
::
This
::
getServer
().
getEndpoint
()));
server
=
cameo
::
Server
::
create
(
cameo
::
This
::
getServer
().
getEndpoint
());
server
->
init
();
cout
<<
"cameo server "
<<
*
server
<<
endl
;
vexpSpy
=
server
->
connect
(
VEXPSPY
);
if
(
vexpSpy
->
exists
()
)
{
if
(
vexpSpy
)
{
// The application exists from a previous server session
vexpSpy
->
kill
();
cameo
::
application
::
State
state
=
vexpSpy
->
waitFor
();
cout
<<
"terminated old vEXP spy with state "
<<
cameo
::
application
::
toString
(
state
)
<<
endl
;
cameo
::
State
state
=
vexpSpy
->
waitFor
();
cout
<<
"terminated old vEXP spy with state "
<<
cameo
::
toString
(
state
)
<<
endl
;
}
vector
<
string
>
appArgs
;
...
...
@@ -80,23 +81,19 @@ void Init(const FunctionCallbackInfo<Value>& args) {
vexpSpy
=
server
->
start
(
VEXPSPY
,
appArgs
);
if
(
!
vexpSpy
->
exists
())
{
cout
<<
"no vEXP spy"
<<
endl
;
}
else
{
cout
<<
"vEXP spy "
<<
*
vexpSpy
<<
endl
;
}
cout
<<
"vEXP spy "
<<
*
vexpSpy
<<
endl
;
// Create the requester
requester
=
cameo
::
application
::
Requester
::
create
(
*
vexpSpy
,
"get_data"
);
requester
=
cameo
::
coms
::
Requester
::
create
(
*
vexpSpy
,
"get_data"
);
if
(
requester
.
get
()
==
0
)
{
if
(
!
requester
)
{
cout
<<
"cannot create requester"
<<
endl
;
return
;
}
// Create the remote server.
remoteServer
.
reset
(
new
cameo
::
Server
(
nomadEndpoint
));
remoteServer
=
cameo
::
Server
::
create
(
nomadEndpoint
);
remoteServer
->
init
();
args
.
GetReturnValue
().
Set
(
Undefined
(
v8Isolate
));
}
...
...
@@ -109,10 +106,9 @@ void GetData(const FunctionCallbackInfo<Value>& args) {
requester
->
send
(
reqData
);
// Wait for the response.
string
response
;
requester
->
receive
(
response
);
optional
<
string
>
response
=
requester
->
receive
();
args
.
GetReturnValue
().
Set
(
String
::
NewFromUtf8
(
args
.
GetIsolate
(),
response
.
c_str
()).
ToLocalChecked
());
args
.
GetReturnValue
().
Set
(
String
::
NewFromUtf8
(
args
.
GetIsolate
(),
response
.
value
().
c_str
()).
ToLocalChecked
());
}
/**
...
...
binding.gyp
View file @
82eb0f84
...
...
@@ -9,8 +9,8 @@
"target_name": "addoncameonomad",
"sources": [
],
'cflags
!
': [ '-fno-exceptions' ],
'cflags_cc
!
': [ '-
fno-exceptions
' ],
'cflags': [ '-fno-exceptions' ],
'cflags_cc': [ '-
std=c++17
' ],
'conditions': [
['nomad=="true"', {
"sources": [
...
...
@@ -24,7 +24,7 @@
}]
],
"libraries": [
"-lnomadaccessor -lcameo -lprotobuf -lzmq"
"
-lzmq
-lnomadaccessor -lcameo
-api-cpp
-lprotobuf -lzmq"
]
}]
]
...
...
@@ -32,8 +32,8 @@
{
"target_name": "addonvexpspy",
'cflags
!
': [ '-fno-exceptions' ],
'cflags_cc
!
': [ '-
fno-exceptions
' ],
'cflags': [ '-fno-exceptions' ],
'cflags_cc': [ '-
std=c++17
' ],
'conditions': [
['nomad=="true"', {
"sources": [
...
...
@@ -47,7 +47,7 @@
}]
],
"libraries": [
"-l
cameo
-lprotobuf -lzmq"
"-l
zmq -lcameo-api-cpp
-lprotobuf -lzmq"
]
}]
]
...
...
@@ -57,8 +57,8 @@
"target_name": "addonvexplib",
"sources": [
],
'cflags
!
': [ '-fno-exceptions' ],
'cflags_cc
!
': [ '-
fno-exceptions
' ],
'cflags': [ '-fno-exceptions' ],
'cflags_cc': [ '-
std=c++17
' ],
'conditions': [
['vexplib=="true"', {
"sources": [
...
...
package-lock.json
View file @
82eb0f84
...
...
@@ -318,14 +318,19 @@
"deprecated": "ag-grid is now deprecated - please use @ag-grid-community/all-modules. See www.ag-grid.com/javascript-grid-modules/ for more information."
},
"node_modules/ajv": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.0.tgz",
"integrity": "sha1-6yhAdG6dxIvV4GOjbj/UAMXqtak=",
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true,
"dependencies": {
"co": "^4.6.0",
"fast-deep-equal": "^1.0.0",
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.3.0"
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/epoberezkin"
}
},
"node_modules/ajv-keywords": {
...
...
@@ -1883,7 +1888,7 @@
"node_modules/co": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
"integrity": "sha
1-bqa989hTrlTMuOR7+gvz+QMfsYQ
=",
"integrity": "sha
512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ=
=",
"engines": {
"iojs": ">= 1.0.0",
"node": ">= 0.12.0"
...
...
@@ -3574,9 +3579,10 @@
]
},
"node_modules/fast-deep-equal": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz",
"integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8="
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
"dev": true
},
"node_modules/fast-json-stable-stringify": {
"version": "2.0.0",
...
...
@@ -4931,6 +4937,27 @@
"node": ">=4"
}
},
"node_modules/har-validator/node_modules/ajv": {
"version": "5.5.2",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
"integrity": "sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==",
"dependencies": {
"co": "^4.6.0",
"fast-deep-equal": "^1.0.0",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.3.0"
}
},
"node_modules/har-validator/node_modules/fast-deep-equal": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
"integrity": "sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw=="
},
"node_modules/har-validator/node_modules/json-schema-traverse": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
"integrity": "sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA=="
},
"node_modules/has-ansi": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
...
...
@@ -5722,9 +5749,10 @@
"integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
},
"node_modules/json-schema-traverse": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
"integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true
},
"node_modules/json-stringify-safe": {
"version": "5.0.1",
...
...
@@ -7229,6 +7257,17 @@
"xmldom": "0.1.x"
}
},
"node_modules/popper.js": {
"version": "1.16.1",
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz",
"integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==",
"deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1",
"peer": true,
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/popperjs"
}
},
"node_modules/posix-character-classes": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
...
...
@@ -7884,30 +7923,6 @@
"node": ">= 4"
}
},
"node_modules/schema-utils/node_modules/ajv": {
"version": "6.5.3",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz",
"integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==",
"dev": true,
"dependencies": {
"fast-deep-equal": "^2.0.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
}
},
"node_modules/schema-utils/node_modules/fast-deep-equal": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
"dev": true
},
"node_modules/schema-utils/node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true
},
"node_modules/seed-random": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/seed-random/-/seed-random-2.2.0.tgz",
...
...
@@ -9596,30 +9611,6 @@
"node": ">=0.10.0"
}
},
"node_modules/webpack/node_modules/ajv": {
"version": "6.5.3",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz",
"integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==",
"dev": true,
"dependencies": {
"fast-deep-equal": "^2.0.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
}
},
"node_modules/webpack/node_modules/fast-deep-equal": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
"dev": true
},
"node_modules/webpack/node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true
},
"node_modules/which": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz",
...
...
@@ -10074,14 +10065,15 @@
"integrity": "sha512-HtJt8iFcRKCBj5UHBDmwSLLr72F3XDACeBNarH4nJWFHIqcnu7u0Ifrd2nftPmfEBj6YjFHawDqcZL2yo3YfmQ=="
},
"ajv": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.0.tgz",
"integrity": "sha1-6yhAdG6dxIvV4GOjbj/UAMXqtak=",
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true,
"requires": {
"co": "^4.6.0",
"fast-deep-equal": "^1.0.0",
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.3.0"
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
}
},
"ajv-keywords": {
...
...
@@ -11494,7 +11486,7 @@
"co": {
"version": "4.6.0",
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
"integrity": "sha
1-bqa989hTrlTMuOR7+gvz+QMfsYQ
="
"integrity": "sha
512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ=
="
},
"code-point-at": {
"version": "1.1.0",
...
...
@@ -12918,9 +12910,10 @@
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
},
"fast-deep-equal": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz",
"integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8="
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
"dev": true
},
"fast-json-stable-stringify": {
"version": "2.0.0",
...
...
@@ -14106,6 +14099,29 @@
"requires": {
"ajv": "^5.1.0",
"har-schema": "^2.0.0"
},
"dependencies": {
"ajv": {
"version": "5.5.2",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
"integrity": "sha512-Ajr4IcMXq/2QmMkEmSvxqfLN5zGmJ92gHXAeOXq1OekoH2rfDNsgdDoL2f7QaRCy7G/E6TpxBVdRuNraMztGHw==",
"requires": {
"co": "^4.6.0",
"fast-deep-equal": "^1.0.0",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.3.0"
}
},
"fast-deep-equal": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
"integrity": "sha512-fueX787WZKCV0Is4/T2cyAdM4+x1S3MXXOAhavE1ys/W42SHAPacLTQhucja22QBYrfGw50M2sRiXPtTGv9Ymw=="
},
"json-schema-traverse": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
"integrity": "sha512-4JD/Ivzg7PoW8NzdrBSr3UFwC9mHgvI7Z6z3QGBsSHgKaRTUDmyZAAKJo2UbG1kUVfS9WS8bi36N49U1xw43DA=="
}
}
},
"has-ansi": {
...
...
@@ -14755,9 +14771,10 @@
"integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
},
"json-schema-traverse": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
"integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A="
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true
},
"json-stringify-safe": {
"version": "5.0.1",
...
...
@@ -16037,6 +16054,12 @@
"xmldom": "0.1.x"
}
},
"popper.js": {
"version": "1.16.1",
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz",
"integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==",
"peer": true
},
"posix-character-classes": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
...
...
@@ -16593,32 +16616,6 @@
"requires": {
"ajv": "^6.1.0",
"ajv-keywords": "^3.1.0"
},
"dependencies": {
"ajv": {
"version": "6.5.3",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz",
"integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==",
"dev": true,
"requires": {
"fast-deep-equal": "^2.0.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
}
},
"fast-deep-equal": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
"dev": true
},
"json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true
}
}
},
"seed-random": {
...
...
@@ -17756,32 +17753,6 @@
"uglifyjs-webpack-plugin": "^1.2.4",
"watchpack": "^1.5.0",
"webpack-sources": "^1.0.1"
},
"dependencies": {
"ajv": {
"version": "6.5.3",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.3.tgz",
"integrity": "sha512-LqZ9wY+fx3UMiiPd741yB2pj3hhil+hQc8taf4o2QGRFpWgZ2V5C8HA165DY9sS3fJwsk7uT7ZlFEyC3Ig3lLg==",
"dev": true,
"requires": {
"fast-deep-equal": "^2.0.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
}
},
"fast-deep-equal": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
"dev": true
},
"json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true
}
}
},
"webpack-cli": {
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment