我實際上是webpack的新手,並試圖學習它。我一直在試圖使用webpack將我的供應商js文件和自定義jquery腳本從src複製到dist。我試過了,但我找不到任何方法。 所以這是我的文件夾結構是如何:如何使用webpack將腳本文件從src複製到dist
Project_root_folder
- node_modules/
- 的package.json
- 的src/
- 應用程序/
- app.js
- IMG/
- img1.png
- CSS/
- main.scss
JS/
- custom_slick.js
- main.js
- 插件/
- jquery.min.js
- slick.min.js
index.pug
- about.pug
contact.pug
dist/
- webpack.config.js
//我webpack.config文件
var path = require("path"),
src = path.resolve(__dirname, "src"),
dist = path.resolve(__dirname, "dist"),
webpack = require("webpack"),
HtmlWebpackPlugin = require("html-webpack-plugin"),
HtmlWebpackPugPlugin = require('html-webpack-pug-plugin'),
ExtractTextPlugin = require("extract-text-webpack-plugin"),
extractPlugin = new ExtractTextPlugin({
filename: "css/main.css"
});
module.exports = {
entry: src + "/app/app.js",
output: {
path: dist,
filename: "bundle.js",
publicPath: "/"
},
module: {
rules: [
{ //Convert .pug to .html
test: /\.pug$/,
loaders: ['file-loader?name=[name].html', 'pug-html-loader?pretty&exports=false']
},
{
test: /\.scss$/, //convert .scss to .css
use: extractPlugin.extract({
use: ["css-loader", "sass-loader?minimize=true"]
})
},
{
test: /..\js\$\.js$/, // move all .js files in js folder
use: [
{
loader: "file-loader",
options: {
name: "[name].js",
outputPath: "js/"
}
}
]
},
{
test: /..\js\plugins\.js$/,
use: [
{
loader: "file-loader",
options: {
name: "js/plugins/[name].js",
outputPath: "js/plugins/"
}
}
]
}
]
},
plugins: [
extractPlugin
]
}
App.js文件
import '../css/main.scss';
require.context('../js/', true, /\.js$/); //require all js files in js folder
require.context('../js/plugins/', true, /\.js$/); // all js files in plugins folder which is inside js folder
function requirAll (r) { r.keys().forEach(r); }
requireAll(require.context('../', true, /\.pug$/));
而且當我運行這個配置文件,我注意到只有帶有後綴「-js」的腳本文件才被複制,而不是包含在js /例如文件名「main.js」的文件夾不會被複制,但如果它被命名爲「main-js.js」,則它會被複制到我的dist文件夾中,並且我無法從插件/文件夾複製文件。我無法理解這一點。我嘗試了所有可能的解決方案,我可以通過stackoverflow,github和類似的網站,但沒有任何幫助。另外我發現webpack非常混亂。在轉移到webpack之前,我一直在使用gulp,我發現它更有幫助。我遇到了webpack並希望瞭解它,但我發現它非常困難。如果你們能幫我弄清楚這一點,那會很棒。謝謝!
那麼我想要實現的是...使用jquery庫編寫funcitonalities ...我不想捆綁bundle.js內...我只是想保持每個這些js文件分開。這就是爲什麼我只是想將js文件從src複製到dist文件夾的原因。 – Amisha64
我試過用這個,但是我在我的dist文件夾裏面弄到了一些奇怪的文件夾結構。所以這就是我在我的配置文件中做的: copyWebpackPlugin = new copyPlugin {[from:「src/js/*」,to:「js /」} ])my dist/contains> dist/js/src/js /(我的所有js文件來自src/js /) – Amisha64
它總是相對於'output.path'字段。 – felixmosh