2016-08-01 10 views
1

を必要とする私は、実行時に解決されるはずですその発現を必要としているが、私はこの単純な例のためのWebPACKコンフィグまわりで私の頭を取得することはできません。のWebPACK式外部

import something from 'module'; 
import pkg from './package.json'; 
let a; 

if (pkg.main) { 
    a = require(pkg.main); 
} 

たビルドがmoduleが含まれている必要がありますが、実行時にcommonjsモジュールとしてとpkg.mainが必要です。言い換えれば、それらをビルドから除外します。

マイwebpack.config.jsこれまで:今、何が起こる

var webpack = require('webpack'); 

module.exports = { 
    entry: './src/main.js', 
    output: { 
    filename: '[name].js', 
    path: './build' 
    }, 
    target: 'node-webkit', 
    plugins: [ 
    new webpack.ExternalsPlugin('commonjs', './package.json') 
    ], 
    module: { 
    noParse: /\.min\.js/, 
    exprContextRegExp: /$^/, 
    exprContextCritical: false, 
    loaders: [ 
     { 
     test: /\.js$/, 
     loader: 'babel', 
     exclude: /node_modules/ 
     } 
    ] 
    } 
}; 

webpackMissingModule例外でpkg.mainの結果を得るために必要と私はexprContextRegExpを削除する場合は、インクルードはコンテキストを使用する必要があります。不思議誰のために任意のヘルプ

答えて

1

ため

ありがとう:あなたはこのプラグインでそれを解決することができます:あるようWebPACKのでは解決できない

function() { 
    this.parser.plugin('call require', function(expr) { 
    if (expr.arguments.length !== 1) { 
     return; 
    } 

    const param = this.evaluateExpression(expr.arguments[0]); 
    if (!param.isString() && !param.isConditional()) { 
     return true; 
    } 
    }); 
} 

何が残されます。

関連する問題