【发布时间】:2019-02-11 12:10:19
【问题描述】:
这是我的文件结构:
├── public/
│ ├── assets
│ │ ├── node_modules
│ │ │ ├── jquery
│ │ │ ├── etc...
│ │ ├── images
│ │ ├── icons
│ │ ├── package.json
│ ├── es
│ │ ├── index.js
│ ├── js
│ │ ├── bundle.js
│ ├── scss
│ ├── css
│ ├── index.php
├── app/
│ ├── contollers
│ ├── models
│ ├── views
│ ├── helpers
├── node_modules/
│ ├── webpack/
│ │ ├── ...
│ │ │ ├── ...
├── package.json
└── webpack.conf.js/
我创建了 2 个单独的 npms,一个用于根文件夹 (/www) 用于开发,另一个用于 public/assets/ 下的资产(图像、图标和节点模块)。
我想将 jquery 库(例如)模块加载到我的 index.js 文件中。
试过了:
import '../scss/style.scss';
import {$,jQuery} from '../assets/node_models/jquery';
返回
./public/es/index.js 中的错误模块未找到:错误:无法解析 '../assets/node_models/jquery' 在'/www/public/es' @ ./public/es/index.js 5:14-53
这是我的 webpack.conf.js 文件:
const path = require('path');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const UrlLoader = require('url-loader');
module.exports = {
entry: {
main: './public/es/index.js'
},
output: {
path: path.resolve(__dirname, 'public/js/'),
filename: 'bundle.js'
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: "babel-loader"
}
},
{
test: /\.s?css$/,
use: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: ['css-loader', 'sass-loader']
})
},
{
test: /\.(png|gif|jpe|jpg|woff|woff2|eot|ttf|svg)(\?.*$|$)/,
use: [{
loader: 'url-loader',
options: {
limit: 100000
}
}]
}
]
},
plugins: [
new ExtractTextPlugin({
filename: '../css/main-style.css'
}),
new HtmlWebpackPlugin({
inject: false,
hash: true,
template: './public/index.php',
filename: 'index.php'
})
],
devServer: {
port: 3000,
contentBase: __dirname + '/public/js',
inline: true
}
};
如何从其他文件夹加载模块?
【问题讨论】:
标签: npm webpack ecmascript-6 node-modules es6-modules