WebPack 1.x - Использование файла извне webpack root - PullRequest
0 голосов
/ 21 января 2020

У меня есть архитектура этого проекта:

Root
    Project1
        package.json
        webpack.config
    Project2
        package.json
        webpack.config
    Common
        file1.js

Я хочу иметь возможность использовать file1.js для каждого проекта.

Я использую старый webpack 1.13.1.

Я пытался использовать псевдоним:

resolve: {
    alias: {
      commons: path.resolve(__dirname, ".../../Common/")
    }
}

Я пробовал оба способа:

import ProcessTree from '../../Common/file1';
import ProcessTree from 'commons/file1';

Есть идеи?

это мой конфиг веб-пакета:

import webpack from 'webpack';
import path from 'path';

let commonPath= path.resolve(__dirname, '..', '..', 'Common');

export default {
  devtool: 'eval-source-map',
  entry: [
    './src/index'
  ],
  target: 'web',
  output: {
    path: __dirname + '/dist', // Note: Physical files are only output by the production build task `npm run build`.
    publicPath: '/',
    filename: 'bundle.js'
  },
  resolve: {
    alias: {
      commons: commonPath
    }
  },
  devServer: {
    contentBase: './src'
  },
  module: {
    loaders: [
      { 
        test: /\.js$/, 
        include: [
          path.join(__dirname, 'src'), 
          commonPath
        ],
        loaders: ['babel'] 
      },
      { test: /(\.css)$/, loaders: ['style', 'css?sourceMap'] },
      { test: /(\.scss)$/, loaders: ['style', 'css?sourceMap', 'sass?sourceMap'] },
      { test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, loader: 'file' },
      { test: /\.(woff|woff2)$/, loader: 'url?prefix=font/&limit=5000' },
      { test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=application/octet-stream' },
      { test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?mimetype=image/svg+xml' }
    ]
  },
  node: {
    fs: "empty",
    child_process: 'empty',
  }
};

1 Ответ

0 голосов
/ 21 января 2020

Убедитесь, что путь включен в любое правило загрузчика модулей, с которым вы хотите обрабатывать файлы в папке Common.

Например:

module: {
  loaders: [
    {
      test: /\.js?$/,
      include: [
        path.resolve(__dirname),
        path.resolve(__dirname, "../../Common")
      ],
      exclude: /node_modules/,
      loader: "babel-loader"
    }
  ]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...