我从node_modules
转换导入的模块时遇到问题。 Babel出于某种原因不会翻译从node_modules
导入的模块,而是翻译从src
导入的模块。
这是一个示例存储库:https://github.com/NikitaKA/babeltest
main.js
// result code contains const and let, but it shouldn't. :(
index.js
import qs from 'query-string; // not transpiled
import lib from './lib' // transpiled
const query = qs.parse(window.location.search);
webpack.config.js
const path = require('path');
module.exports = {
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'main.js'
},
module: {
rules: [
{
test: /\.js$/,
use: {
loader: "babel-loader"
}
}
]
}
};
.babelrc
{
"presets": [
["@babel/preset-env", {
"modules": false,
"targets": {
"chrome": 39
}
}],
["@babel/preset-stage-1", {
"modules": false,
"decoratorsLegacy": true,
"pipelineProposal": "minimal"
}]
],
"plugins": [
"transform-es2015-constants",
"@babel/plugin-transform-block-scoping",
"@babel/plugin-transform-runtime"
]
}
最佳答案
扩展我的评论:
您确实不希望转换所有的node_modules
-这将花费很长时间,并且大多数代码应该已经有ES5(除非它们实际上是ES6模块,在这种情况下,ES6入口点被声明为"module"
在package.json
list 中)。query-string@6.x
不是,它在its README中这样说:
关于javascript - Babel不会从 'node_modules'转换导入的模块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51289261/