我在一个旧的Webpack (v4.34.0) / Vue.js (v2.6.10)项目中更新了Framework7 (v4.4.3)和Vue.js (v2.6.10)。
我需要在浏览器中使用node-soap库作为soap客户端,但是当运行webpack编译的代码时,这个库的值是未定义的
import soap from 'soap'
console.log('Soap Library Imported: ', soap)
Soap Library Imported: undefined所有这些都可以在axios库中正常工作。
import axios from 'axios'
console.log('Axios Library Imported: ', axios)
Axios Library Imported: ƒ wrap() {...}我想我在使用babel时遇到了模块导入问题,但我正在找出问题的所在。
谢谢你的帮助。
.babelrc
{
"presets": [
["@babel/preset-env", {
"modules": "auto",
"targets": {
"browsers": [
"Android >= 5",
"IOS >= 9.3",
"Edge >= 15",
"Safari >= 9.1",
"Chrome >= 49",
"Firefox >= 31",
"Samsung >= 5",
],
},
}],
],
"plugins": [
"transform-vue-jsx",
// "@babel/plugin-transform-runtime",
"@babel/plugin-syntax-dynamic-import",
],
}webpack.config.js (萃取物)
module.exports = {
mode: env,
node: {
setImmediate: false,
dgram: 'empty',
fs: 'empty',
net: 'empty',
tls: 'empty',
child_process: 'empty',
},
module: {
rules: [
{
test: /\.(js|jsx)$/,
use: 'babel-loader',
include: [
resolvePath('src'),
resolvePath('node_modules/framework7'),
resolvePath('node_modules/framework7-vue'),
resolvePath('node_modules/template7'),
resolvePath('node_modules/dom7'),
resolvePath('node_modules/ssr-window'),
resolvePath('node_modules/soap'),
],
},
},
}发布于 2019-06-16 14:15:18
可能发生的情况是,node-soap没有默认的导出(请参阅soap.js),而且您也没有导入它的任何指定出口,因此在webpack的树摇动编译过程中,它们被丢弃,您得到的只是一个空块(您可以通过检查webpack生成的包来确认这一点)。
尝试以命名导出的形式直接导入node-soap方法,例如createClient
import { createClient } from 'soap'发布于 2020-03-16 23:11:44
要使用listen (服务器),这对我起了作用:
import * as soap from 'soap';
soap.listen(...);https://stackoverflow.com/questions/56619573
复制相似问题