Создание чистого импорта с помощью Webpack и Babel
Вы можете вводить модули из другого файла JavaScript, используя требуемый код JavaScript или обычный импорт с возможностью синтаксического анализа Babel. Но код с этим импортом часто становится немного плохим из-за относительного импорта, например:
import Component from '../../path/to/Component'
Лучший и более чистый способ написания импорта:
import Component from '~/path/from/jsRoot/Component.js'
Это в значительной степени позволяет избежать неправильных относительных путей для импорта в зависимости от того, где находятся файлы компонентов. Сам Babel не может это сделать. Но вы можете проанализировать это самим веб-пакетом, используя атрибут разрешения. Итак, ваш веб-пакет должен иметь эти два сегмента кода:
resolve: {
alias: {
'~': __dirname + '/path/to/jsRoot',
modernizr$: path.resolve(__dirname, '.modernizrrc')
},
extensions: ['.js', '.jsx'],
modules: ['node_modules']
},
и
module: {
rules: [
{
test: /\.jsx?$/,
use: [
{
loader: 'babel-loader',
query: {
presets: [
'@babel/preset-react',
['@babel/preset-env', { modules: false }]
],
},
}
],
},
}
{Modules: false} гарантирует, что babel-preset-env не обрабатывает синтаксический анализ импорта модуля.
+1
+1
+1
+1
+1