測試Webpack編譯swagger codegen js code
npm link packages/minimal
npm install
判斷有 define 這個 function 而跑進 AMD 那段程式
if (typeof define === 'function' && define.amd) {
// AMD. Register as an anonymous module.
define(['ApiClient', 'api/DefaultApi'], factory);
} else if (typeof module === 'object' && module.exports) {
// CommonJS-like environments that support module.exports, like Node.
module.exports = factory(require('./ApiClient'), require('./api/DefaultApi'));
}
ERROR in ./packages/minimal/src/index.js
Module not found: Error: Cannot resolve module 'ApiClient' in /Users/lin/git/swagger/webpack_minimal/packages/minimal/src
@ ./packages/minimal/src/index.js 32:4-52
解法: Disable AMD https://github.com/webpack/imports-loader#disable-amd
add loader imports?define=>false
{
test: /\.js$/,
loaders: [
'babel',
'imports?define=>false'
],
exclude: /node_modules/,
include: __dirname
},
ApiClient 用到 fs
// fs.ReadStream in Node.js (but not in runtime like browserify)
if (typeof window === 'undefined' &&
typeof require === 'function' &&
require('fs') &&
param instanceof require('fs').ReadStream) {
return true;
}
ERROR in ./packages/minimal/src/ApiClient.js
Module not found: Error: Cannot resolve module 'fs' in /Users/lin/git/swagger/webpack_minimal/packages/minimal/src
@ ./packages/minimal/src/ApiClient.js 103:74-87 103:108-121
解法: Include polyfills or mocks for various node stuff https://webpack.github.io/docs/configuration.html#node
webpack.config.js 增加
node: {
fs: 'empty',
}