我是学习EC6的java开发人员。我使用npm下载JavaScript包和webpack来创建最终的bundle.js文件。多个项目之间共享node_modules目录
我有一个很好的项目文件夹,其中包含与java文件的java模块,我想添加EC6 JavaScript文件到我的web模块。我使用maven来管理java jar依赖库。
这是我的文件夹结构:在我的项目/网络模块,1/src目录/主/ web应用文件夹
my-project
|-common-module
|-ejb-module
|-web-module-1
| |-src
| |-main
| |-java
| |-com.a.b
| |-Hello.java
| |-webapp
| |-index.jsp
| |-bundle.js
| |-package.json
| |-webpack.config.js
| |-WEB-INF
| |-node_modules <-- I WANT THIS FOLDER TO BE MOVED AWAY FROM HERE
| |-app <-- react + ec6 javascript files
| |-action
| |-components
| |-...
|-web-module-2
|-<same structure then under web-module-1>
当我执行NPM安装...命令,然后一个新的名称为的目录node_modules由npm在webapp目录下创建。该文件夹包含大量文件。
我的问题是,当我在我的第二个Web项目工作,并执行相同的NPM安装...命令,然后第二node_modules目录与我的项目/网络模块下的相同内容的创建-2/src/main/webapp目录。
我可以使用通用的,分开的node_modules目录来避免重复的文件并节省磁盘空间吗? 我可以存储js依赖项下ex。 /home/user/javascript/modules文件夹?
评论1:我不想以root身份执行npm并使用npm -g install!
评论2:我也不想创建符号链接。
你能帮我吗?
编辑 我做了什么:
- 我已经创造了JS包的新文件夹: /家庭/用户/ JavaScript的模块。
- 复制package.json文件到/home/user/javascript-modules。
- NPM安装--prefix /家庭/用户/ JavaScript的模块
之后必要的JS模块复制到我的的JavaScript模块/节点模块目录。太好了!
但是,当我试图执行的WebPack然后我得到一个丢失的模块错误:
- CD我的项目/网络模块,1/src目录/主/ web应用
- ./home/user/ JavaScript的模块/ node_modules /。斌/的WebPack
结果:
Hash: a6bf1a0d210729a54be9
Version: webpack 1.14.0
Time: 39ms
ERROR in Entry module not found: Error: Cannot resolve module 'babel-loader' in /home/user/java/intellijmy-project/web-module-1/src/main/webapp
评论:我webpack.config.js文件包含该内容的行:装载机: '巴别塔装载机'
是有没有办法指定webpack的“classpath”?我的意思是告诉webpack模块在哪里。
UPDATE 正如你在我试图解决许多不同的方面,我的问题,没有任何成功的注释中看到。对我来说,似乎我想做的事情不受webpack支持。说了这么伤心:(
也就是说,如果一些有任何工作,好和完整的解决方案,请与我们分享。谢谢。
更新answer..hope它解决您的问题 –
我想达到同样的事情。我结束了切换到[pnpm](https://github.com/pnpm/pnpm)。虽然它使用符号链接和硬链接来避免磁盘上的重复,但似乎工作得很好。 – sceid