我从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/

10-10 01:18
查看更多