rod*_*ira 17 javascript commonjs reactjs webpack
我的目标是使用Webpack将隔离的组件导出到假定的全局对象中.
<script>
   var MyApp = window.MyApp || {};
   MyApp.something = MyApp.something || {};
</script>
<script src="my-isolated-module.js"></script>
//
// other modules/components loaded here...
//
<script>
   MyApp.something.myIsolatedModule.run();
</script>
在上面的例子中,我假设有一个全局对象/模块,它有一个属性something,它将附加其他模块.所以我想将我的孤立模块附加到全局MyApp.something对象而不破坏任何一个MyApp或MyApp.something.
var webpack = require('webpack');
var UglifyJsPlugin = require('webpack/lib/optimize/UglifyJsPlugin');
module.exports = {
    target: 'web',
    context: __dirname + '/src/',
    entry: './main.jsx',
    output: {
        path: __dirname + '/dist/',
        filename: 'app.bundle.js',
        library: 'something',
        libraryTarget: 'var'
    },
    resolve: {
        extensions: ['', '.js', '.jsx']
    },
    module: {
        loaders: [
            {test: /\.jsx$/, loader: '../node_modules/jsx-loader'}
        ]
    },
    externals: {
        react: {
            root: 'React',
            commonjs: 'react',
            commonjs2: 'react',
            amd: 'react'
        }
    },
    plugins: [
        new UglifyJsPlugin()
    ]
};
module.exports = {
    myIsolatedModule: require('./MyIsolatedModule')
};
我已经尝试将Webpack设置output.libraryTarget为每个可能的值(请参阅http://webpack.github.io/docs/configuration.html#output-librarytarget),并尝试使用其值以output.library包含直接命名空间用我的模块.什么都没有,因为我想...
Mat*_*ick 31
output.library 可以是如下数组:
output: {
    library: ['MyApp', 'something']
}
这将在窗口上创建一个对象,window.MyApp.something或者window.MyApp如果它已经存在则将其添加到该对象.
| 归档时间: | 
 | 
| 查看次数: | 14490 次 | 
| 最近记录: |