账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    webpack打包的ES6代码,import获取的值为空/undefined
    12
    0

    webpack配置如下啦:

    const webpack = require('webpack')
    const path = require('path')
    
    const config = {
        context: path.resolve(__dirname, '../src'),
        entry: '../src/app.js',
        output: {
            path: path.resolve(__dirname, '../dist'),
            filename: 'bundle.js'
        },
        module: {
            rules: [{
                test: /\.js$/,
                include: path.resolve(__dirname, '../src'),
                use: [{
                    loader: 'babel-loader',
                    options: {
                        presets: ['env']
                    }
                }]
            }]
        },
        plugins:[
        ]
    }
    
    module.exports = config

    使用如上的webpack配置,打包app.js如下:

    import a from './a'
    import b from './b'
    export{
        a,
        b
    }

    打包完发布npm,另一个项目使用该模块包,import {a} from xxx,却拿不到a或者b的值分别为undefined,这是为啥?(上述打包一切正常,已使用babel转换,依赖引入的也是转换后的es5代码)求指教!

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 情深必傷 普通会员 1楼

      在webpack中,import语句是用来导入模块的,如果import语句中的值为空或undefined,那么模块并不会被引入到项目中。

      这是因为webpack编译模块的时候,会检查导入的值是否为空或undefined。如果值为空或undefined,那么webpack就会认为这个模块并没有被导入,所以不会引入到项目中。

      如果你想让webpack将import语句中的值导入到项目中,你需要在import语句中使用"()"来导入模块。例如:

      javascript import MyModule from './MyModule';

      这样,webpack就会将MyModule模块导入到项目中。如果你只是想导入模块的值,那么你不需要使用"()"来导入模块。例如:

      javascript import MyModule from './MyModule'; console.log(MyModule); // 输出:MyModule

      这样,webpack就不会将MyModule模块导入到项目中。

    更多回答
    扫一扫访问手机版