@bioforge
Верстающий пыхер

Как webpack 2 заставить понимать импорт от корня проекта?

Добрый день!

Решил попробовать перейти на webpack 2, но не могу понять как реализовать импорты от корня проекта.
В первой версии делал с помощью плагина к babel babel-root-slash-import

Импорт выглядит так import UserService from '/core/user/user.module';

Webpack 2 ругается на
Module not found: Error: Can't resolve


Настройки webpack:
"use strict";

const path              = require('path');
const webpack           = require('webpack');
const NgAnnotatePlugin  = require('ng-annotate-webpack-plugin');

module.exports = {
    context: __dirname + '/app',
    
    entry: {
        app:    './bootstrap.js',
        vendor: './vendor.js'
    },
    output: {
        chunkFilename: '[name].[chunkhash].js',
        path: __dirname + '/dist',
        filename: `[name].[chunkhash].js`,
        publicPath: '/crm/'
    },

    plugins: [
        new webpack.NoErrorsPlugin(),

        new NgAnnotatePlugin({
            add: true
        })
    ],

    resolve: {
        root: path.resolve(__dirname, 'app'),
        extensions: ['','.js']
    },

    resolveLoader: {
        modulesDirectories: ['node_modules'],
        moduleTemplates: ['*-loader',''],
        extensions: ['','.js']
    },

    module: {
        loaders: [
            {
                test: /\.js$/,
                loader: 'babel',
                exclude: /\/node_modules\//,
                include: __dirname + '/app',
                query: {
                    cacheDirectory: true,
                    plugins: [
                        'transform-runtime',
                        'transform-class-properties'
                    ],
                    presets: ['es2015-native-modules']
                }
            },
            {
                test: /\.html$/,
                loader: 'raw',
                query: {
                    minify: true
                }
            },
            {
                test: /\.(css|less)$/,
                loader: extractLESS.extract(['css','less'])
            }
        ],

        noParse: [
            /angular\/angular.js/,
            /angular-ui-router/,
            /jquery\/src\/jquery.js/,
            /moment\/moment.js/
        ]


    }
};
  • Вопрос задан
  • 1311 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Kraky
Попробуйте добавить resolve.alias секцию:
resolve: {
    alias: {
      core: path.resolve(__dirname, 'core'),
    }
  },

Затем вы можете вызывать модули как import SomeModule from 'core/modules/SomeModule';
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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