2017-03-06 37 views
5

Korzystając z pakietu Webpack ^v2.2.1, chciałbym zaimportować moduł TypeScript jako tekst, oprócz importowania tego samego modułu "normalnie".Webpack: importuj moduł TypeScript zarówno "normalnie", jak i nieprzetworzony łańcuch znaków.

Wyliczyłem, że prawdopodobnie powinienem używać raw-loader. Ale to nie działa.

Niektóre przykładowy kod:

import DemoComponent from './demo' 
import demoCode from 'raw-loader!./demo' 

maszynopis krzyczy na mnie, że coś podobnego

error TS2307: Cannot find module 'raw-loader!./demo'. 

Używam ts-loader.

Oto mój webpack.config.js:

const { resolve } = require('path') 
const fail = require('webpack-fail-plugin') 

const config = { 
    entry: './docs/index.ts', 
    output: { 
    filename: 'bundle.js', 
    path: resolve(__dirname, 'docs-build') 
    }, 
    resolve: { 
    extensions: [ '.ts', '.js' ] 
    }, 
    devtool: 'inline-source-map', 
    module: { 
    rules: [ 
     { 
     enforce: 'pre', 
     test: /\.js$/, 
     loader: 'source-map-loader' 
     }, 
     { 
     test: /\.ts$/, 
     loader: 'ts-loader' 
     }, 
     { 
     test: /\.scss$/, 
     use: [ 
      'style-loader', 
      { 
      loader: 'css-loader', 
      options: { 
       sourceMap: true 
      } 
      }, 
      'sass-loader' 
     ] 
     } 
    ] 
    }, 
    plugins: [ 
    fail 
    ] 
} 

module.exports = config 
+0

Podobne http://stackoverflow.com/questions/33915930/using-file-loader- with-es6-modules-and-maszynopis-in-webpack – Doug

Odpowiedz

1

Wydaje się, że następujący pracuje:

import DemoComponent from './demo' 
const demoCode = require('!!raw-loader!./demo') 

Ale nie jestem pewien, jak to jest poprawne. Chciałbym znaleźć dokumentację dotyczącą kolejności i mechanizmu ładowarek.

Również wolałbym być konsekwentny, używając zamiast tego instrukcji import. Ale maszynopis narzeka na to, jeśli zrobić prostą konwersję:

import DemoComponent from './demo' 
import demoCode from '!!raw-loader!./demo' 

błąd jest prosta

error TS2307: Cannot find module '!!raw-loader!./demo'. 
+0

Tak się składa, że ​​w tym przypadku cieszę się korzyścią z runtime natury 'require', więc zamierzam się z tym uporać. – mightyiam