# amd2cmd-webpack-plugin

> Transform AMD module library into CMD module built by webpack

Latest version **1.0.2** (published 2018-08-05) · MIT license · 0 weekly downloads

## Install

```sh
npm install amd2cmd-webpack-plugin
pnpm add amd2cmd-webpack-plugin
yarn add amd2cmd-webpack-plugin
bun add amd2cmd-webpack-plugin
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.2 |
| Published | 2018-08-05 |
| First published | 2017-11-27 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 4 |
| Unpacked size | 24.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Junrey Cen |
| Maintainers | junrey |
| Keywords | webpack, plugin, amd2cmd, amd, cmd |

## Links

- npm: https://www.npmjs.com/package/amd2cmd-webpack-plugin
- Repository: https://github.com/JunreyCen/amd2cmd-webpack-plugin
- Issues: https://github.com/JunreyCen/amd2cmd-webpack-plugin/issues
- npm.io page: https://npm.io/package/amd2cmd-webpack-plugin

## Dependencies (4)

- [babel-core](https://npm.io/package/babel-core.md) ^6.26.0
- [babel-loader](https://npm.io/package/babel-loader.md) ^7.1.2
- [babel-preset-env](https://npm.io/package/babel-preset-env.md) ^1.6.1
- [babel-preset-stage-2](https://npm.io/package/babel-preset-stage-2.md) ^6.24.1

## Alternatives

- [@mdxeditor/editor](https://npm.io/package/@mdxeditor/editor.md) — 962.4K weekly downloads
- [mmdb-lib](https://npm.io/package/mmdb-lib.md) — 680.9K weekly downloads
- [playcanvas](https://npm.io/package/playcanvas.md) — 36.2K weekly downloads
- [@glw907/cairn-cms](https://npm.io/package/@glw907/cairn-cms.md) — 967 weekly downloads
- [markdown-to-confluence](https://npm.io/package/markdown-to-confluence.md) — 103 weekly downloads

## Recent versions

- 1.0.2 (latest) — 2018-08-05
- 1.0.1 — 2018-08-01
- 0.1.0 — 2018-03-05
- 0.0.2 — 2017-12-18
- 0.0.1 — 2017-11-27

## README

# AMD2CMD Webpack Plugin

此插件会把webpack打包的amd库输出为cmd库。

## Installation
Install the plugin with npm:

```shell
$ npm install amd2cmd-webpack-plugin --save-dev
```

## Usage

```javascript
var Amd2CmdWebpackPlugin = require('amd2cmd-webpack-plugin')
var webpackConfig = {
    entry: {
        // ...
    },
    externals: {
        jquery: '$',
        // ...
    },
    output: {
        // ...
        libraryTarget: 'amd'
    },
    plugins: [
        new Amd2CmdWebpackPlugin(),
        // ...
    ]
};
```

编译结果如下：

```javascript
define(function(require, cmdExports, cmdModule) {
    var __WEBPACK_EXTERNAL_MODULE_70__ = require('$');
    cmdModule.exports = /**** webpack source ****/;
});
```

## API

- id `{String}`
插件会把传入的`id`值与模块名拼接成`dependencies`参数。

```javascript
var webpackConfig = {
    // ...
    entry: {
        webpack-plugin: ''
    },
    externals: {
        jquery: '$',
        // ...
    },
    plugins: [
        new Amd2CmdWebpackPlugin({
            id: '../amd2cmd/'
        }),
        // ...
    ]
};
```

编译结果如下：

```javascript
define('../amd2cmd/webpack-plugin', ["$"], function(require, cmdExports, cmdModule) {
    // ...
});
```

- globalExternals `{Object}`
插件会把`globalExternals`中的依赖引入方式从`require`函数方式引入改为全局变量引入。

```javascript
var webpackConfig = {
    // ...
    externals: {
        jquery: '$',
        // ...
    },
    plugins: [
        new Amd2CmdWebpackPlugin({
            globalExternals: {
                jquery: '$'
            }
        }),
        // ...
    ]
};
```

编译结果如下：

```javascript
define(function(require, cmdExports, cmdModule) {
    var __WEBPACK_EXTERNAL_MODULE_70__ = window.$;
    // ...
});
```

## Configuration
为了支持js concat 和 ie (version 6-9)，`require`标识符需要被保留，[详见CMD官方说明](https://github.com/seajs/seajs/issues/426). 

你可以通过配置`UglifyJsPlugin`保留`require`标识符，然后使用CMD构建工具去生成`id`和`dependencies`。

```javascript
var Amd2CmdWebpackPlugin = require('amd2cmd-webpack-plugin')
var UglifyJsPlugin = require('uglifyjs-webpack-plugin')
var webpackConfig = {
    // ...
    mode: 'production',
    optimization: {
        minimizer: [
            new UglifyJsPlugin({
                uglifyOptions: {
                    mangle: {
                        reserved: ['require'],
                    }
                }
            })
        ]
    },
    plugins: [
        new Amd2CmdWebpackPlugin({
            globalExternals: {
                lodash: '_'
            }
        })
    ]
};
```

## License

This project is licensed under MIT.

---
_Source: https://npm.io/package/amd2cmd-webpack-plugin · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
