javascript - Webpack:导出到窗口中的现有模块

标签 javascript reactjs commonjs webpack

我的目标是使用 Webpack 将一个独立的组件导出到一个假定的全局对象中。

index.html

<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 对象,而不破坏 MyAppMyApp.something

webpack.config.js

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()
    ]
};

src/main.jsx

module.exports = {
    myIsolatedModule: require('./MyIsolatedModule')
};

我已经尝试将 Webpack 的 output.libraryTarget 设置为每个可能的值(参见 http://webpack.github.io/docs/configuration.html#output-librarytarget ),以及尝试使用 output.library 的值,所以它将包括我的模块的直接 namespace 。一切都如我所愿...

最佳答案

output.library 可以是如下数组:

output: {
    library: ['MyApp', 'something']
}

这将在窗口 window.MyApp.something 上创建一个对象,或者将其添加到 window.MyApp(如果它已经存在)。

关于javascript - Webpack:导出到窗口中的现有模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30539725/

相关文章:

javascript - React 15 与 React-redux 不兼容

javascript - 如何使用 UMD 定义单个对象构造函数?

ember.js - 在 Ember 应用程序中找不到 DS.Store 实例化

javascript - 单击 href = "#"的标签时不重定向。 Angular.js

javascript - react : Link to a div on another html page

javascript - Bootstrap Popover 在任何点击时关闭

javascript - 在react-virtualized网格单元/行中使用onClick

javascript - 为什么这个 react 引导模式没有正确响应?

javascript - 使用 CommonJS 的 react 路由器历史记录

javascript - 获取调用函数的对象