我是一名Java开发人员,正在学习EC6。我使用npm下载JavaScript包,并使用webpack创建最终的bundle.js文件。
我有一个很好的项目文件夹,其中包含Java模块和Java文件,我想向我的web模块添加EC6 JavaScript文件。我使用Maven管理Java jar依赖库。
这是我的文件夹结构:
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>
当我在my-project/web-module-1/src/main/webapp文件夹中执行npm install...命令时,npm会在webapp目录下创建一个名为node_modules的新目录。该文件夹包含大量文件。
我的问题是,当我在第二个Web项目上工作并执行相同的npm install...命令时,将在my-project/web-module-2/src/main/webapp目录下创建一个带有相同内容的第二个node_modules目录。
我可以使用公共的、分离的node_modules目录来避免重复的文件并节省磁盘空间吗? 我可以将js依赖项存储在例如/home/user/javascript/modules文件夹下吗?
评论1:我不想以root身份执行npm并使用npm -g install!
评论2:我也不想创建符号链接。
你能帮我吗?
编辑: 我做了什么:
- 我为JS包创建了一个新文件夹:/home/user/javascript-modules。
- 将package.json文件复制到/home/user/javascript-modules。
- npm install --prefix /home/user/javascript-modules
但是当我尝试执行webpack时,我会得到一个缺少模块错误:
- cd my-project/web-module-1/src/main/webapp
- ./home/user/javascript-modules/node_modules/.bin/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文件包含以下内容:loader:“babel-loader”。
有没有办法为webpack指定“classpath”?也就是说,告诉webpack模块在哪里。
更新 正如您在评论中所看到的,我已经尝试了许多不同的方法来解决我的问题,但都没有成功。对我来说,似乎webpack不支持我想要做的事情。太可悲了:(
就是这样。如果有人有任何有效的、好的、完整的解决方案,请与我们分享。谢谢。