gpt4 book ai didi

javascript - ES6 应用程序中的错误 webpacking 库源映射,适用于 ES5 应用程序

转载 作者:行者123 更新时间:2023-11-30 16:24:56 24 4
gpt4 key购买 nike

我分发了一个 ES6 库,转译为 ES5,并使用此 webpack.config.js

进行源映射
var webpack = require("webpack");

module.exports = {
entry: ['./src/MyLib.js'],
output: {
path: __dirname,
filename: 'dist/bundle.js',
libraryTarget: 'umd',
library: "MyLib"
},
module: {
loaders: [
{
test: /\.js$/,
loader: 'babel',
query: { presets: ['es2015'] }
},
{
test: /\.css$/,
loader: "style-loader!css-loader"
}
]
},
devtool: 'source-map'
};

Webpack's devtool docs 中所暗示我用 source-map-loader使库源映射在使用该库的 ES5 应用程序中可用。它适用于这个 webpack.config.js

var path = require("path");

module.exports = {
entry: './main.js',
output: {
filename: 'dist/bundle.js'
},
module: {
preLoaders: [
{
test: /\.js$/,
loader: 'source-map',
include: /my-lib/
}
]
},
resolveLoader: {
root: path.join(__dirname, "node_modules"),
},
devtool: 'source-map'
};

问题是,当库的使用者是 ES6 应用程序时,使用以下 webpack.config.js,它只是将 babel 加载器添加到适用于 ES5 应用程序的配置文件中,

var path = require("path");

module.exports = {
entry: './main.js',
output: {
filename: 'dist/bundle.js'
},
module: {
preLoaders: [
{
test: /\.js$/,
loader: 'source-map',
include: /my-lib/
}
],
loaders: [
{
test: /\.js$/,
loader: 'babel',
query: { presets: ['es2015'] }
}
]
},
resolveLoader: {
root: path.join(__dirname, "node_modules"),
},
devtool: 'source-map'
};

然后,在运行webpack时,出现类似这样的错误

ERROR in ./~/my-lib/dist/bundle.js
Module build failed: Error: /Users/xavi/Development/my-lib/examples/es6/node_modules/my-lib/dist/bundle.js: Invalid mapping: {"generated":{"line":8,"column":0,"lastColumn":null},"source":null,"original":{"line":null,"column":null},"name":null}
...

为什么当消费者是 ES5 应用程序时此源映射配置有效,但当它是使用 Babel 转译的 ES6 应用程序时却无效?如何使库源映射在 ES6 应用程序中可用?

最佳答案

Babel 在获取你的库的 sourcemaps 时肯定有一些问题,并且由于你有 test:/\.js$/,,Babel 将处理你的 repo 中的每个 JS 文件,包括 node_modules

我建议将 test 限制为仅匹配您希望 Babel 处理的文件,这可能足以避免这种情况,尽管它不能解决根本问题。

关于javascript - ES6 应用程序中的错误 webpacking 库源映射,适用于 ES5 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34255838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com