Webpack 怎么改 html 中的 js 路径?

2015-06-08 16:42:37 +08:00
 phx13ye
在HTML文件中如果有
```html
<script src="./src/js/A.js"></script>
<script src="./src/js/B.js"></script>
```
wepack之后,A,B的源码合并并压缩为bundle.js
有什么方法可以改为
```html
<script src="./build/js/bundle.js"></script>
```
8750 次点击
所在节点    webpack
11 条回复
leojoy710
2015-06-08 17:23:33 +08:00
开发阶段用webpack-dev-server实时打包 就不用改来改去了...
crazyxin1988
2015-06-08 17:26:25 +08:00
可以自己写个webpack插件 自动替换
phx13ye
2015-06-08 17:46:17 +08:00
@leojoy710 不太懂什么意思,
业余前端,已经被js这些项目管理工具搞得有点晕了
用webpack-dev-server这些路径就不需要手工管理了吗,还是说
一开始就指定好bundle.js路径,其余按commonjs的风格require进来就好了
IamJ
2015-06-08 20:31:07 +08:00
一开始就是 bundle.js
Gonster
2015-06-08 20:46:42 +08:00
一般这些工具都带watch模式,源文件更改自动重新编译
loooooost
2015-06-08 21:10:07 +08:00
直接用bundle.js
在webpack配置的devtool中加一个sourcemap来调试
phx13ye
2015-06-08 22:23:07 +08:00
@loooooost @IamJ 请教一下
你好,目前使用react+flux
我不想好多组件都写一句require ‘react’,所以上面那个A是react.js,B是一个main.js
如果直接用bundle,是不是webpack自己就能处理好,不会多次将A require进来吗?

另外请问前端开发中有没有约定俗成的目录结构?webpack对于开发和生产环境一般是怎么配置的?
Gonster
2015-06-08 22:36:07 +08:00
loooooost
2015-06-08 22:45:04 +08:00
@phx13ye
楼上用的commonsChunk是一个方式
也可以使用webpack配置中的externals

更多的可以参考一下repo https://github.com/kriasoft/react-starter-kit
yakczh
2015-06-09 10:37:14 +08:00
@phx13ye jsx 和 require(‘xxx’) 的代码必须一起打包成bundle.js吗, 打包以后的bundle.js差不多接近2m了 我想 require('xxx') 和actions store打包成bundle.js jsx的component在页面用script引用

比如<script src="bundle.js" ></script>
<script type='text/jsx' >

...
componentDidMount: function() {
NodeStore.addChangeListener(this.onChange);
},

...
</script>
但是提示 NodeStore 找不到
cloudcome
2015-06-27 16:43:10 +08:00
```
<script src="./src/js/A.js"></script>
<script src="./src/js/B.js"></script>
```

这种情况,使用 [coolie](http://coolie.ydr.me/) 非常容易实现。


```
<!--coolie-->
<script src="./src/js/A.js"></script>
<script src="./src/js/B.js"></script>
<!--/coolie-->
```

使用
```
coolie build
```
构建之后

=>

```
<script src="/abcdef123456.js"></script>
```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/196965

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX