Vendor klasörünü webpack/Typescript içine dahil etmeyin


Düzenleme: Typescript'in tsconfig.json üzerinden kendi yapılandırması var ve oraya vendor klasörünü eklemem gerekiyordu.

Aşağıdaki gibi bir klasör yapım var: misc/config/base.js misc/template.ejs sources/scripts/... sources/styles/... vendor/...

ve webpack yapılandırmam şöyle görünüyor:

    entry: [
        path.join(paths.scripts.path, paths.scripts.file),
        path.join(paths.styles.path, paths.styles.file),
    ],
    output: {
        path: paths.build.path,
        filename: paths.build.files.script,
        publicPath: '/',
    },
    resolve: {
        extensions: ['', '.webpack.js', '.web.js', '.ts', '.tsx', '.js', '.scss'],
    },
    module: {
        loaders: [
            {
                test: /\.(tsx|ts)$/,
                exclude: /node_modules/,
                // transformation order is from down to up
                loaders: [
                    'babel?'+JSON.stringify({
                        presets: ['es2015', 'react', 'stage-0'],
                        plugins: [babelRelayPlugin],
                    }),
                    'ts'],
            },
            {
                test: /\.scss$/,
                loader: ExtractTextPlugin.extract('style', ['css', 'postcss', 'sass']),
            },
            {
                test: /\.(woff|woff2|eot|ttf)$/,
                loader: 'url?limit=100000&name=./css/fonts/font-[hash].[ext]',
            },
            {
                test: /\.(png|svg)$/,
                loader: 'url?limit=100000&name=./img/[ext]/img-[hash].[ext]',
            },
        ],
    },

Webpack geliştirici sunucusunu her başlattığımda ts ve d.ts (TypeScript dosyaları) hakkında şikayet ediyor ama aslında vendor ile hiç ilgilenmemesi gerekir. Bunu nasıl başarabilirim?

Düzenleme: Aldığım neredeyse tüm hatalar şu şekilde oluyor: ERROR in /.../vendor/postgraphql/node_modules/typescript/lib/lib.es2015.iterable.d.ts (165,11): error TS2451: Blok kapsamlı değişken 'String' yeniden bildirilemez.

Cevap #1

Typescript'in kendi tsconfig.json üzerinden bir yapılandırması vardır ve oraya vendor klasörünü eklemem gerekiyordu.

    "exclude": [
    "node_modules",
    "build",
    "vendor"
  ]
}

Cevap #2

Muhtemelen burada şikayet eden babel yükleyicisidir, vendor dosyalarınızı ayrıştırmaya çalışıyor. Eğer durum buysa (hata görülmeden kesin konuşmak zor), o zaman o yükleyici nesnesini buna değiştirmek yardımcı olmalıdır:

{
    test: /\.(tsx|ts)$/,
    exclude: [/node_modules/, /vendor/],
    // transformation order is from down to up
    loaders: [
        'babel?'+JSON.stringify({
            presets: ['es2015', 'react', 'stage-0'],
            plugins: [babelRelayPlugin],
        }),
        'ts'],
},