2017-03-06 8 views
5

Mit webpack ^v2.2.1 möchte ich ein TypeScript-Modul als Text importieren, zusätzlich zum gleichen Modul "normal" importieren.Webpack: TypScript-Modul sowohl "normal" als auch als Rohzeichenfolge importieren

Ich habe gedacht, dass ich wahrscheinlich die raw-loader verwenden sollte. Aber es funktioniert nicht.

Einige Beispiel-Code:

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

Typoskript ist bei mir, dass so etwas wie schreien

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

ich ts-loader bin mit.

Hier ist meine 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

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

Antwort

1

Es scheint, dass die folgende funktioniert:

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

Aber ich bin nicht sicher, wie richtig das ist. Ich würde gerne etwas Dokumentation über die Reihenfolge und den Mechanismus der Lader finden.

Auch würde ich lieber konsistent sein, indem Sie stattdessen import Anweisungen verwenden. Aber Typoskript darüber beschwert, wenn ich eine gerade Umwandlung tun:

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

Der Fehler ist ein einfaches

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

Ich genieße zufällig den Nutzen von 'require's Laufzeitnatur, in diesem Fall bleibe ich dabei. – mightyiam

Verwandte Themen