2017-04-07 132 views
0

我有一個js文件看起來像這樣:的WebPack:如何導出JS文件,而不模塊

self.MonacoEnvironment = { 
    baseUrl: CDN_HOST + '/javascripts' 
}; 
importScripts('/javascripts/vs/base/worker/workerMain.js'); 

在我webpack.config,我有CDN_HOST定義:

new webpack.DefinePlugin({ 
    'CDN_HOST': JSON.stringify(process.env.CDN_HOST || '') 
}), 
enter code here 

我想導出這個文件,但CDN_HOST被取代這裏的值,但我不希望這個文件被包裹在一個模塊(例如,「webpackjsonP」)

如果我使用file-loader那麼它將是l使用模塊定義複製文件,但不能替換CDN_HOST

如果我使用babel-loader,那麼它將取代CDN_HOST,但添加模塊定義。

如何才能使用DefinePlugin但不使用模塊?

回答

0

我設法做到這一點,而不使用DefinePlugin。相反,我用file-loader鏈接string-replace-loader。對我而言,string-replace-loader幾乎等於DefinePlugin

loaders: [ 
    "file-loader?name=./filetoexport.js", 
    { 
     loader: "string-replace-loader", 
     query: { 

     search: 'CDN_HOST', 
     replace: JSON.stringify(process.env.CDN_HOST || '') 
     } 
    }, 
    ]