![](/img/trans.png)
[英]How to call a vanilla JavaScript function from a node js file
[英]How do i call a function of node js in vanilla js?
我有一個節點 js 功能 -
const BpmnModdle = require('bpmn-moddle')
var bpmn = function () {
var bm = new BpmnModdle()
console.log(bm)
}
module.exports = bpmn
我想在純香草 js 中調用這個函數。
到目前為止我嘗試過的 - 我已經創建了一個 fileData javascript 文件,我試圖在其中調用 bpmn 函數
文件數據.js
function createData(xml, node) {
var bp = bpmn();
console.log(bp)
}
我試圖將兩者捆綁在 webpack 中。 我的 webpack 配置文件在哪里
module.exports = {
entry: [
'./javascript/examples/editors/js/bpmn.js',
'./javascript/examples/editors/js/app.js',
'./javascript/examples/editors/js/deletes.js',
'./javascript/examples/editors/js/fileData.js',
'./javascript/examples/editors/js/jsonData.js',
'./javascript/examples/editors/js/new.js',
'./javascript/examples/editors/js/open.js',
'./javascript/examples/editors/js/save.js',
'./javascript/examples/editors/js/saveas.js',
'./javascript/examples/editors/src/js/mxClient.js',
'./node_modules/bpmn-moddle/dist/index.js'
],
output: {
path: __dirname,
publicPath: '/',
filename: 'bundle.js'
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: "script-loader"
}
},
{
test: /\.css$/,
use: [
{
loader: "style-loader"
},
{
loader: "css-loader",
options: {
modules: true,
importLoaders: 1,
localIdentName: "[name]_[local]_[hash:base64]",
sourceMap: true,
minimize: true
}
}
]
}
]
}
};
我無法在純 js 中調用此函數,並且收到一條錯誤消息,提示“bpmn 未定義”。
在調用函數文件中包含bpmn
模塊,然后調用它。
在您的代碼中,您沒有告訴 webpack 有關bpmn
模塊依賴項的信息。
要在 webpack 包中添加module
,您必須在調用函數文件/模塊中添加模塊。
例子
像這樣創建文件結構。
創建這些文件並粘貼代碼。
webpack.config.js
const path = require('path');
module.exports = {
mode: 'development',
entry: './src/index.js',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist'),
},
};
包.json
{
"name": "Stackoverflow",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"build": "webpack --config webpack.config.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"bpmn-moddle": "^6.0.0"
},
"devDependencies": {
"webpack": "^4.41.5",
"webpack-cli": "^3.3.10"
}
}
源代碼/索引.js
import bpmn from './bpmnModdle.js';
function createData(xml, node) {
var bp = bpmn();
console.log(bp)
console.log('Module called');
}
createData();
src/bpmnModdle.js
import BpmnModdle from 'bpmn-moddle';
var bpmn = function () {
var bm = new BpmnModdle();
console.log('bm', bm)
console.log('From inside the module');
return 'exported'
}
export default bpmn;
索引.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<script src="../dist/bundle.js"></script>
<title>Document</title>
</head>
<body>
</body>
</html>
運行npm install
運行npm run build
在瀏覽器中打開 index.html 文件
我正在使用
ES6
模塊,因為bpmn-moddle
包不支持commanJS
模塊系統。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.