【发布时间】:2016-12-08 18:27:39
【问题描述】:
我有一个大型项目,我想将它分成多个 package.json,以便可以清楚地说明每个部分的依赖关系,并且可以将这些包作为单独的部分导出。
但是,我希望我的应用程序包含这些包中的每一个,并使用 webpack 和 babel 编译它们。包有共享依赖项,所以我不想只将每个包输出到 /dist 文件夹。
我理想的目录结构是这样的:
\main
\app
\node_modules
package.json
\package1
package.json
node_modules
index.js
\package2
package.json
node_modules
index.js
我尝试了多种方法:
- 将 webpack 的解析模块与
path.resolve('app')类似。这只是行不通,即使理论上应该这样做。 - 使用 main 的 package.json 引用其他使用
"package1" : "file:../package1"的文件。这不会将 package1 视为 es6 javascript 并引发错误。在 webpack 配置中使用 resolveLoaders 没有帮助。
我的 webpack 配置如下。
module: {
loaders: [
{
test: /\.js?/,
loader: 'babel-loader',
include: [
path.resolve('app'),
path.resolve('../prose'),
],
query: {
plugins: [
['react-transform', {
transforms: [{
transform: 'react-transform-hmr',
// If you use React Native, pass 'react-native' instead:
imports: ['react'],
// This is important for Webpack HMR:
locals: ['module']
}]
}],
['transform-object-assign']
]
}
},
{ test: /\.css$/, loader: 'style-loader!css-loader!sass-loader' },
{ test: /\.svg$/, loader: 'file-loader' },
{ test: /\.png$/, loader: 'file-loader' },
{ test: /\.jpg$/, loader: 'file-loader' },
{ test: /\.json$/, loader: 'json-loader' }
]
},
resolve: {
modules: [
path.resolve('app'),
'node_modules',
],
extensions: ['.json', '.js', '.jsx'],
}
任何其他项目的想法或示例将不胜感激!
【问题讨论】:
标签: javascript npm ecmascript-6 babeljs