63
задан 26 August 2015 в 19:45

3 ответа

Это - проблема с исходными картами JavaScript, которые в настоящее время не поддерживают отображающиеся имена символа , и столпотворение, которое меняет имена import - модули редактора при компиляции в CommonJS от синтаксиса модуля ES2105.

Babel делает это, чтобы полностью поддерживать то, что модули ES2015 привязка экспорта путем разрешения всех ссылок на импорт каждый раз, когда они используются в коде, вместо во время импорта.

, Если Вы не пишете модули, которые зависят от экспорта привязки (как вероятно, так как Вы не могли на самом деле сделать этого с CommonJS), затем можно предпочесть сохранять имена переменной при трансукладке ES2015. Я создал альтернативу собственному столпотворению commonjs, модуль преобразовывают для Babel 6, который сохраняет имена переменной: babel-plugin-transform-es2015-modules-commonjs-simple. Это - общедоступная замена для babel-plugin-transform-es2015-modules-commonjs, собственное столпотворение преобразовывают.

можно использовать это с webpack или узлом. Типичная конфигурация могла бы быть:

npm install --save-dev babel-preset-es2015-webpack
npm install --save-dev babel-plugin-transform-es2015-modules-commonjs-simple

модуль babel-preset-es2015-webpack является ветвлением стандарта es2015 предварительная установка, которая делает не , включают модуль, преобразовывают, потому что Вы хотите использовать альтернативную версию. Это работает на узел также. Эти модули используются в .babelrc:

{
    "presets": [
        "es2015-webpack"
    ],
    "plugins": [
        "transform-runtime",
        ["transform-es2015-modules-commonjs-simple", {
            "noMangle": true
        }]
    ]
}

transform-runtime обычно хорошая идея включать в любой независимый проект избежать дополнительного повторения сгенерированного кода. Типичная конфигурация модуля в webpack.config.js:

module: {
    loaders: [
        {
            loader: "babel-loader",
            include: [path.resolve(__dirname, "src")]                
        }
    ]
},
devtool: '#inline-source-map'

получающийся код не изменит имена импорта, таким образом отлаживание с исходными картами предоставит Вам доступ к символам.

27
ответ дан 31 October 2019 в 13:00

Необходимо будет использовать скомпилированные имена переменной, не оригиналы. Источник отображается, только позволяют браузеру отображать исходный код, который соответствует скомпилированному коду; они не могут заставить браузер разрешить исходные имена переменной от скомпилированного кода.

, Чтобы видеть скомпилированные имена переменной, или переключиться на скомпилированный источник или посмотреть в области Scope Variables справа, которая покажет Вам (как он, говорит относительно олова), какие переменные существуют в текущей области.

Столпотворение IIRC имеет тенденцию снабжать префиксом имена модуля _, таким образом, Ваш BaseModel переменную, вероятно, называют _baseModel или подобной.

6
ответ дан 31 October 2019 в 13:00

Я имел некоторый хороший успех путем добавления отладчика оператора

;

в Ваших файлах JavaScript/машинописного текста даже в файлах платформы угловых или vue2 как *.vue

Поэтому, даже если файл преобразовывается или изменился или переименовал, или Ваши отображения пути к URL не работают, отладчик ступит так или иначе.

1
ответ дан 31 October 2019 в 13:00

Другие вопросы по тегам:

Похожие вопросы: