我在用

"babel-core": "^6.24.1",
"babel-loader": "^7.0.0",
"babel-preset-env": "^1.4.0",
"babili-webpack-plugin": "0.0.11",
"webpack": "^2.5.1"


在我的webpack.config.js中,我声明了一些外部依赖项:

externals: {
        "package-one": "package-one",
        "package-two": "package-two"
    },


babel加载程序配置为:

module: {
        rules: [
            {
                test: /\.js$/,
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets: ['env']
                    }
                }
            }
        ]
    }


然后我使用以下软件包在使用这些软件包的JS文件上启动转译:

const p1 = require('package-one');
const p2 = require('package-two');


但是,转译的输出显示:

(function(module, exports) {
   module.exports = package-one;
}),
(function(module, exports) {
   module.exports = package-two;
})


如您所见,导出文件没有被“”包围,这会导致最终版本出错。我在这里可能想念什么?

最佳答案

查看documentation

它说明了应如何使用外部


externals: {
    // require("jquery") is external and available
    //  on the global var jQuery
    "jquery": "jQuery"
}



因此,您需要为外部库的全局变量提供一个有效的名称,如下所示:

externals: {
    "package-one": "packageOne",
    "package-two": "packageTwo"
},


但是当然,packageOne和packageTwo必须作为全局存在,这就是使用外部变量的意图。

10-04 15:16
查看更多